2017-03-03 3 views
0
@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') 

Unfortunatelly 비어 있습니다. 'PDF'은 비어 있습니다.는 werkzeug.datastructures.FileStorage에서 MD5를 계산하지만, 파일로 객체를 저장하면 filemd5name +를 hashlib.md5 후,

파일에서 md5를 가져 와서 전체 파일을 저장할 방법이 있습니까?

답변

0

파일 스트림에서 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')