Python 从werkzeug.datastructures.FileStorage计算md5,但将对象另存为文件是空的

Python 从werkzeug.datastructures.FileStorage计算md5,但将对象另存为文件是空的,python,flask,md5,Python,Flask,Md5,不幸的是,hashlib.md5之后的文件md5name+'.pdf'是空的 有没有办法从文件中获取md5并保存整个文件?因为您已经对文件流执行了读取,所以需要查找返回到文件的开头才能成功保存它 @app.route('/upload', methods=['GET', 'POST']) def upload_file(): if form.validate_on_submit(): #get pdf file pdffile = form.pdfuplo

不幸的是,hashlib.md5之后的文件md5name+'.pdf'是空的


有没有办法从文件中获取md5并保存整个文件?

因为您已经对文件流执行了
读取
,所以需要
查找
返回到文件的开头才能成功保存它

@app.route('/upload', methods=['GET', 'POST'])
def upload_file():
    if form.validate_on_submit():
        #get pdf file
        pdffile = form.pdfupload.data
        #next line causes exception
        filemd5 = hashlib.md5()
        filemd5.update(pdffile.read())
        filemd5name = filemd5.hexdigest()
        #next save file
        pdffile.save(filemd5name+'.pdf')
@app.route('/upload', methods=['GET', 'POST'])
def upload_file():
    if form.validate_on_submit():
        #get pdf file
        pdffile = form.pdfupload.data
        #next line causes exception
        filemd5 = hashlib.md5()
        filemd5.update(pdffile.read())
        filemd5name = filemd5.hexdigest()
        #next save file
        pdffile.seek(0)
        pdffile.save(filemd5name+'.pdf')