我正在使用Flask上传文件.为了防止两次存储相同的文件,我打算从文件内容中计算md5,并将文件存储为.除非文件已经存在.
@app.route('/upload', methods=['GET', 'POST'])
def upload_file():
if request.method == 'POST':
file = request.files['file']
#next line causes exception
img_key = hashlib.md5(file).hexdigest()
Run Code Online (Sandbox Code Playgroud)
不幸的是,hashlib.md5抛出异常:
TypeError: must be string or buffer, not FileStorage
Run Code Online (Sandbox Code Playgroud)
我已经尝试过file.stream - 效果相同.
有没有办法从文件中获取md5而不暂时保存?
request.files['file']是一种FileStorage有read()方法的类型.尝试做:
file = request.files['file']
#file.read() is the same as file.stream.read()
img_key = hashlib.md5(file.read()).hexdigest()
Run Code Online (Sandbox Code Playgroud)
更多信息FileStorage:http://werkzeug.pocoo.org/docs/datastructures/#werkzeug.datastructures.FileStorage
| 归档时间: |
|
| 查看次数: |
2441 次 |
| 最近记录: |