在 python 烧瓶中上传一个没有表格的 zip 文件
Uploading a zip file in python flask without form
我正在尝试使用 python flask 请求将 zip 文件上传到我的服务器,然后使用 zipfile 模块将其解压缩。
这是我的代码:
@app.route('/uoload', methods=['POST'])
def upload ():
data = request.data
current_path = os.getcwd()
filename = "file.zip"
with open(os.path.join(upload_path, filename), 'w') as file:
file.write(data)
try:
with zipfile.ZipFile(os.path.join(current_path + filename)) as zf:
zf.extractall(os.path.join(upload_path))
except BadZipfile as e:
print e
return "", 406
但是上传的文件好像损坏了。因为当我尝试解压缩它时,发生 BadzipFile 异常并显示:"Bad magic number for file header" .
问题似乎是您正在使用 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 flask 请求将 zip 文件上传到我的服务器,然后使用 zipfile 模块将其解压缩。
这是我的代码:
@app.route('/uoload', methods=['POST']) def upload (): data = request.data current_path = os.getcwd() filename = "file.zip" with open(os.path.join(upload_path, filename), 'w') as file: file.write(data) try: with zipfile.ZipFile(os.path.join(current_path + filename)) as zf: zf.extractall(os.path.join(upload_path)) except BadZipfile as e: print e return "", 406
但是上传的文件好像损坏了。因为当我尝试解压缩它时,发生 BadzipFile 异常并显示:"Bad magic number for file header" .
问题似乎是您正在使用 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()