zip文件保存在服务器,javascript - 在服务器上创建了普通的zip文件,客户端接收到了损坏的zip文件 - 堆栈内存溢出...

本文探讨了一个Vue.js应用从Flask服务器获取ZIP文件的问题。客户端使用JSZip处理ZIP文件时出现损坏错误,而直接通过浏览器下载则正常。文章提供了客户端和服务端的相关代码及错误信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我有一个Vue.js应用,试图从Flask服务器请求一个zip文件。 但是,当我从服务器收到有效负载并尝试将其打开时,我正在使用的包( JSZip )告诉我zip文件已损坏。 如果我通过浏览器请求url,则zip文件下载不会有问题。 我认为这可能是生成zip文件的方式,但是我不确定。 为什么文件会在客户端损坏?

客户端Javascript代码:

const jszip = require('./jszip.min.js');

...more code...

this.filesystem.REST.get('http://localhost:3000').then(function(result){

var zip = new jszip();

zip.loadAsync(result.data).then(function(contents) {

// Execution does not reach this point

// Fails with corruption error before the then() call

})

})

服务器Python代码:

@app.route('/')

def home():

playerFp = os.path.join(seriesMap[seriesid], playerid)

fileList = os.listdir(playerFp)

bytesIo = io.BytesIO()

zf = zipfile.ZipFile(bytesIo, mode="w")

for file in fileList:

if '.jpg' in file or '.xml' in file:

absFp =os.path.join(playerFp, file)

if '.xml' in file:

stats = getJsonFormat(absFp)

jsonfile = file.replace('.xml', '.json')

zf.writestr(jsonfile, stats)

else:

zf.write(absFp, os.path.relpath(absFp, playerFp))

zf.close()

bytesIo.seek(0)

return send_file(bytesIo, attachment_filename=playerid+'.zip', as_attachment=False)

这是我在控制台中遇到的错误:

aHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9tTkhKaS5wbmc=

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值