javascript - 如何使用 javascript 在文档根目录之外下载图像
问题描述
我们的图像存储在文档根目录之外,因此我们使用脚本将其导入浏览器。
/prx/asset.php?tgt=<photo_filename>
我可以在网络上正确显示图像
$("#photo-editmodal").attr('src', '../prx/asset.php?tgt='+details.photo_saved_file);
目标是能够下载该图像。
我一直在阅读一些参考资料,我已经实现的最接近的一点是通过 AJAX 发出请求,然后使用结果创建一个 ObjectURL,但是(我认为)自从收到流数据以来,它不是创建 ObjectURL 的有效参考。
这是我的尝试:
$.ajax({
url: '../prx/asset.php?tgt='+details.photo_saved_file,
method: 'GET',
xhrFields: {
responseType: ''
},
success: function (data) {
console.log(data);
var a = document.createElement('a');
var url = window.URL.createObjectURL(data);
a.href = url;
a.download = details.photo_saved_file;
document.body.append(a);
a.click();
a.remove();
window.URL.revokeObjectURL(url);
},
// error: function(data) {
// console.log(data);
// }
});
我收到消息:
Uncaught TypeError: Failed to execute 'createObjectURL' on 'URL': No function was found that matched the signature provided.
任何人都可以帮助完成这项工作吗?
编辑
我摆脱了 ajax 调用,现在我正在执行以下操作:
$("#download_photo").attr('href', '../prx/asset.php?tgt='+photo);
$("#download_photo").attr('download', photo);
我现在遇到的问题是它在第二次单击按钮时起作用。任何想法?
编辑 2 它比预期的要简单得多,仍然不知道为什么无法在 ObjectURL 的帮助下创建链接元素,但我可以在“编辑”模式打开时分配 href,因此链接具有下载属性在第一次点击时工作。
解决方案
它比预期的要简单得多,仍然不知道为什么无法在 ObjectURL 的帮助下创建链接元素,但是我可以在“编辑”模式打开时分配 href,因此具有下载属性的链接可以正常工作第一次点击。
推荐阅读
- qt - 使用 qt 显示带有 alpha 通道的视频
- c# - 应用程序不会无限期地监听数据库连接?
- powerbi - 我可以将具有 1 个值的表转换为 Power BI 中的文本格式吗?
- html - Css 网格登陆页面
- twitter - 挑选 Flink/Kafka 应用程序的延迟图
- c++ - 使用 OpenVINO 上的 c++ API 获取模型每一层的参数/权重
- google-sheets - 如何替换谷歌表格中的文本?
- jenkins - kubernetes jenkins 奴隶没有看到主人
- python - 您可以访问已被多次询问的单个输入吗
- angular - 无法通过编辑 url (Angular) 导航到页面