我正在尝试使用 python flask 请求将 zip 文件上传到我的服务器,然后使用 zipfile 模块将其解压缩。
这是我的代码:
@app.route('/uoload', methods=['POST'])
定义上传():
数据 = 请求数据
current_path = os.getcwd()
文件名=“文件.zip”
使用 open(os.path.join(upload_path, filename), 'w') 作为文件:
file.write(数据)
尝试:
使用 zipfile.ZipFile(os.path.join(current_path + filename)) 作为 zf:
zf.extractall(os.path.join(upload_path))
除了 BadZipfile 作为 e:
打印 e
返回 "", 406
但似乎上传的文件以某种方式损坏。因为当我尝试解压缩它时,会发生 BadzipFile 异常,并显示:“文件头的魔数错误”。
最佳答案
问题似乎是您正在使用 open
创建一个 zip 存档。
当您使用 open
,python 将创建将数据写入文件并按照您的意愿命名。这不会使它成为一个 zip 存档。这就是它无法从文件中提取数据的原因。
如果要创建 zip 存档,请使用:
import zipfile
zf = zipfile.ZipFile('file.zip', mode='w')
zf.write('add_this_file_to_zip_archive.txt')
zf.close()
关于python-2.7 - 在没有表单的python flask 中上传zip文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34006080/