簡體   English   中英

從werkzeug.datastructures.FileStorage計算md5,但將對象另存為文件為空

[英]Calculate md5 from werkzeug.datastructures.FileStorage, but saving the object as file is empty

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

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

有什么辦法從文件中獲取md5並保存整個文件嗎?

因為您進行了read的文件流,你需要seek回到文件的開始成功地保存它。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM