我的服务器中有一个zip文件,我想为用户创建一个下载按钮,下面是我的代码:
@app.route("/profile", methods=["GET", "POST"])
def profile():
if request.method == "GET":
return render_template("profile.html")
if request.method == "POST":
#Some code
return send_file(f"user_projects/delivery.zip")
下面是我的JS代码:
xhr.onreadystatechange = function () {
if (this.readyState == 4 && this.status == 200) {
if (something) {
some code
}
else {
var zipFile = new Blob([this.response])
var url = URL.createObjectURL(zipFile)
downloadLink.href = url;
}
}
}
当我单击“a”元素(downloadLink)时,我可以下载zip文件,但当我尝试打开它时,我会收到一个错误,上面写着:
错误:不是存档警告:标题错误
从服务器的zip文件是100%罚款,我可以打开它没有任何问题,问题是当我从我的网站下载它,所以我认为有一些我是理所当然的。任何帮助都很感激,谢谢。
我根据这个答案解决了这个问题,现在我可以下载zip文件,只是为了记录:
我修改了服务器代码,必须以二进制格式打开文件,并将其编码为bas64:
with open(f"user_projects/delivery.zip", mode="rb") as binaryFile:
binaryFile = binaryFile.read()
archivoEnBase64 = base64.b64encode(binaryFile)
return archivoEnBase64
以下是修改后的JS代码:
var zipFile = new Blob([atob(this.response)], {"type": "application/zip"})
var url = URL.createObjectURL(zipFile)
downloadLink.href = "data:application/zip;base64," + this.response;
请求-响应是一个字节字符串,因此我使用atob()对其进行解码,href属性使用数据URI方案:
数据:[媒体类型][;base64],数据
我跟随了几篇文章,使用javaclass创建了一个zip文件。拉链已创建,但我无法打开它。在我的Mac电脑上,当我用命令打开它时,我收到了这条消息: 找不到中央目录签名的结尾。此文件不是zipfile,或者它构成多部分存档的一个磁盘。在后一种情况下,将在此存档的最后一个磁盘上找到中心目录和zipfile注释。 解压:在/Users/xxxx/Downloads/iad之一中找不到zipfile目录
问题内容: 我有一个Flask服务器,它从数据库中获取几个不同文件的二进制数据,并将它们放入python’zipfile’对象中。我想使用flask的“ send_file”方法将生成的zip文件与我的代码一起发送。 我最初能够通过使用BytesIO(bin)作为send_file的第一个参数来成功发送非zip文件,但是由于某些原因,我无法对生成的zip文件执行相同的操作。它给出了错误: ‘Zip
我正在使用DocuSign。Net客户端发送文档。 发送的简单场景工作正常-收件人接收发送的文档,我可以从DocuSign管理选项卡打开它们。 但是,当我试图以发件人身份代表其他电子邮件发送文档时,问题是,文档可以发送给收件人(使用正确的发件人电子邮件),但我无法在“文档管理”选项卡中打开(甚至无法看到)此文档和信函。 (在“报告”选项卡中显示,但与其他选项卡不同-它没有要打开的链接) 问:这种行
我试图弄清楚如何从给定的文件夹路径创建新的zip文件,并将其发送回发件人。 需要的是,该文件将在请求它的发件人处下载。我已经看到了很多答案,但没有一个能帮我找到准确的答案。 我的代码: Guid folderGuid=Guid。NewGuid();string folderToZip=ConfigurationManager。AppSettings[“folderToZip”]folderGuid
问题内容: 我编写了一个小模块,该模块首先在目录中找到所有文件,然后合并它们。但是,从目录打开这些文件时遇到问题。我确保我的文件和目录名称正确,并且文件实际上在目录中。 下面是代码。 下面是错误。 问题答案: listdir仅返回文件名:https ://docs.python.org/2/library/os.html#os.listdir您需要完整路径才能打开文件。在打开文件之前,还要检查以确
我有一个错误:PHP无法打开流:打开的文件太多。 我在这里查看了stackoverflow的各种答案,但我无法解决这个问题。我主要尝试增加最大打开文件数的限制: 我已编辑/等/安全/限制。conf,其中我指定了: 保存并注销/重新启动该框后,命令: 仍打印出1024个。我不知道为什么这没有效果,我想这就是我得到php错误的原因。如果需要,我可以粘贴整个文件或任何其他配置文件。我使用的是PHP 5.