如何在Flask应用程序中使用pickle.load-Python3

问题描述

@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[]')

    for file in files:
        if file and allowed_file(file.filename):
            #print(file.filename)
            filename = secure_filename(file.filename)
            encrypted_list = pickle.load(open(file,"rb"))
            print(encrypted_list)

我有一些字符串,该字符串的base64编码已存储在.pem文件中,并且想法是 X ,有人将在flask应用程序中上传多个.pem文件,并且我不想将它们保存在磁盘,只需使用 pickle.load(open(file,“ rb”))读取那些.pem文件,但是此命令给我错误。在加密时,我已经将那些base64编码的字符串存储在.pem文件中。现在,我想从Flask中的.pem文件中解码这些字符串。

任何帮助将不胜感激,并预先感谢!

解决方法

如错误消息所示,您不能将FileStorage实例传递给pickle的load函数。

相反,您应该像encrypted_list = pickle.load(file.stream)这样传入对象之类的文件。

https://werkzeug.palletsprojects.com/en/1.0.x/datastructures/#werkzeug.datastructures.FileStorage