Html 转储pickle文件并下载,无需将其保存在Flask应用程序中的任何位置

Html 转储pickle文件并下载,无需将其保存在Flask应用程序中的任何位置,html,python-3.x,flask,pickle,pem,Html,Python 3.x,Flask,Pickle,Pem,现在我可以在web应用程序部分发送和下载,但是.pem文件已损坏,因为b64_encoded_列表包含存储在.pem文件中的字符串的b64编码。但是在从web应用程序下载文件并再次读取后,给了我一个错误-encrypted=pickle.load(open(pemfile,“rb”)) 错误-取消勾选错误:加载键“W”无效 如何解决这个问题我也使用了mimetype-application/x-x509-ca-cert,但仍然存在相同的错误 请帮忙 提前谢谢 您需要将输出写入类似文件的对象(例如

现在我可以在web应用程序部分发送和下载,但是.pem文件已损坏,因为b64_encoded_列表包含存储在.pem文件中的字符串的b64编码。但是在从web应用程序下载文件并再次读取后,给了我一个错误-encrypted=pickle.load(open(pemfile,“rb”))

错误-取消勾选错误:加载键“W”无效

如何解决这个问题我也使用了mimetype-application/x-x509-ca-cert,但仍然存在相同的错误

请帮忙


提前谢谢

您需要将输出写入类似文件的对象(例如内存中的文件),而不是写入文件

您可以使用
io.BytesIO


然后,您将其发送给客户端。

Ohkk然后我将如何向客户端发送并在客户端下载.pem文件格式??返回发送文件(BytesIO(b64_encoded_list.content),mimetype=“application/x-x509-ca-cert”,attachment_filename=“file.pem”,as_attachment=True)注意-b64_encoded_list是一个字符串。我已经试过了,但是不起作用,你能帮我一下吗!!buffer=BytesIO()buffer.write(b64_编码的_列表)buffer.seek(0)返回发送文件(buffer,mimetype=“application/x-x509-ca-cert”,attachment_filename=“license.pem”,as_attachment=True)我已经这样做了,并成功地在客户端下载了。pem已损坏,因为它包含base64编码以获取原始字符串,但在尝试从下载的文件中获取字符串时出现新错误-UnpicklingError:无效的加载密钥“W”。我想你应该写下来(为自己写)列出应该在哪个序列中发生什么,然后将其与您的代码(即您正在做什么)进行比较。我不完全清楚您想要实现什么,我也不知道您想要在.pem文件中实现什么(pem通常用于证书)。我相信你可以自己解决。祝你好运!
@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)