如何解决转储泡菜文件并下载而不将其保存在Flask App中的任何位置
@app.route('/',methods=['POST'])
def upload_file():
if request.method == 'POST':
if 'files[]' not in request.files:
flash('No file part')
return redirect(request.url)
files = request.files.getlist('files[]')
...Processing my multiple uploaded files in Flask App...
...
b64_encoded_list = base64.b64encode(json_encoded_list)
print(b64_encoded_list)
## b64_encoded_list is a simple string ##
buffer = BytesIO()
buffer.write(b64_encoded_list)
buffer.seek(0)
flash('File(s) successfully uploaded')
return send_file(buffer,mimetype="image/jpg",attachment_filename="license.pem",as_attachment=True)
现在我可以在Web应用程序部分发送和下载,但是.pem文件已损坏,因为b64_encoded_list包含存储在.pem文件中的字符串的b64编码。但是从网络应用下载文件后,再次读回给我一个错误-加密= pickle.load(open(pemfile,“ rb”))
错误-UnpicklingError:无效的加载密钥“ W”。
如何解决此问题,我也使用过mimetype-application / x-x509-ca-cert,但仍然存在相同的错误。
请为此提供帮助!
提前谢谢!
解决方法
您需要将输出写入类似文件的对象(例如,内存文件),而不是将输出写入文件。
您可以使用io.BytesIO
。
https://docs.python.org/3/library/io.html#io.BytesIO
然后,将其发送给客户端。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。