Javascript &引用;失败-网络错误“;尝试使用'提供HTML5下载时;下载';属性 我尝试做的基本总结: 从用户获取文件(使用“dropzone”拖放引导模块接收文件) 修改并对文件进行一些“工作” 将文件压缩到一起,以便下载单个文件 将下载内容发送回用户进行下载(自动或通过链接,详情如下)
上面的粗线是一条不起作用的线,我正在努力弄清楚。以下是该文章的相关HTML和javascript:Javascript &引用;失败-网络错误“;尝试使用'提供HTML5下载时;下载';属性 我尝试做的基本总结: 从用户获取文件(使用“dropzone”拖放引导模块接收文件) 修改并对文件进行一些“工作” 将文件压缩到一起,以便下载单个文件 将下载内容发送回用户进行下载(自动或通过链接,详情如下),javascript,jquery,python,html,flask,Javascript,Jquery,Python,Html,Flask,上面的粗线是一条不起作用的线,我正在努力弄清楚。以下是该文章的相关HTML和javascript: <button type="button" class="btn btn-primary" id="transform"> <span class="glyphicon glyphicon-wrench"></span> Transform Uploaded Files </button> <a id="test_dl" hre
<button type="button" class="btn btn-primary" id="transform">
<span class="glyphicon glyphicon-wrench"></span>
Transform Uploaded Files
</button>
<a id="test_dl" href="" download="user_download.zip">
Download File
</a>
$('#transform').click(function (e) {
$.getJSON('/transform', {}, function (final_zip){
var zipfile = "file://" + final_zip.zip_filename
$('a#test_dl').attr("href", zipfile)
});
});
转换上载的文件
$(“#转换”)。单击(函数(e){
$.getJSON('/transform',{},函数(final_-zip){
var zipfile=“file://”+final\u zip.zip\u文件名
$('a#test_dl').attr(“href”,zipfile)
});
});
用户单击“转换上传的文件”按钮,然后将href更新到生成的zipfile位置,然后可以通过单击“下载文件”HTML下载生成的包
到目前为止,我已经在Chrome上对此进行了测试,使用开发者控制台,我可以看到href在点击下载按钮之前得到了正确的更新,但它总是会显示一个“失败-网络错误”对话框。奇怪的是,当我点击“显示所有下载”,然后点击失败的下载,它成功完成
我希望得到回答的问题
- 这里出现了什么问题
- 这样做对吗?我所要做的就是在处理完成后将文件发送回用户。我担心“file://”无论如何都是不正确的,当服务器与使用它的用户实际距离较远时,它会使我失败(目前它是本地的,因为我正在开发它)
编辑:我应该补充一点,这个的后端目前正在Python的Flask上运行显然这是Chrome的问题,数据URL太长了。我自己还在研究,但显然有一些解决方案涉及Blob对象 请看这里: 这里:基于这里,我是如何为这个问题实施解决方案的: 请注意,我只需要一个Chrome-web解决方案,所以这就是我使用的。对于完整的解决方案,您需要查看原始answ中的示例
$.ajax({
url: "/getData",
dataType: "text",
success: function(data){
$("#download").attr({
"value": "Download",
"href": URL.createObjectURL(new Blob([data], {
type: "application/octet-stream"
})),
"download": "outputFile.csv"
});
}
});