微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

转储泡菜文件并下载而不将其保存在Flask App中的任何位置

如何解决转储泡菜文件并下载而不将其保存在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 举报,一经查实,本站将立刻删除。