Flask上传文件(使用Postman模拟请求)
flask文件上传代码
from flask import request, Flask, jsonify
from matplotlib import pyplot as plt
app = Flask(__name__)
ALLOWED_EXTENSIONS = set(['png', 'jpg', 'bmp'])
@app.route('/', methods=['GET', 'POST'])
def upload_file():
if request.method == 'POST':
# 使用request上传文件,其中‘file'表示前端表单的Key值;也可以使用request.files['file']
f = request.files.get('file')
# 判断是否上传成功
if f is None:
return jsonify({"Status": "Error 0000", "Msg": "没有上传图片,请重新上传!"})
# 检查文件后缀名是否是图片文件
if not allow_file(f.filename):
return jsonify({"Status": "Error 9999", "Msg": "文件格式不支持,仅支持如下图片格式:'png', 'jpg', 'bmp'。"})
# 使用plt将图片读入为数组
np_img = plt.imread(f)
# 对图片进行处理
# Your code
return "Successful"
# 检查文件后缀名是否是图片文件
def allow_file(filename):
return '.' in filename and filename.rsplit('.', 1)[1].lower() in ALLOWED_EXTENSIONS
if __name__ == '__main__':
app.run()
postman模拟请求
这里用postman演示上述过程,具体步骤如下:
首先,使用POST方式并设置HTML 的Headers为:
{"key":"Content-Type","value":"multipart/form-data"}
然后在Body中设定key为file,value则为文件;然后点击Send即可
{"key":"file","value":{},"description":"","type":"file","enabled":true}
得到返回结果
Postman发post请求读取不到文件的情况
使用Fdfs上传文件,postman发post请求读取不到文件,postman报错信息如下:
This file isn't in your working directory. Teammates you share this request with won't be able to use this file. To make collaboration easier you can setup your working directory in Settings.
解决方法:
File-->Settings-->General-->WORKING DIRECTORY-->Choose-->选择工作目录,并把需要传输的文件放置该目录下。
如果还有报错,不能识别设置的working directory,注意重启,重启解决不了问题,那么建议换postman版本,我是8.22.2不行,换了之前的老版本7点几的版本就好了。
技术改变命运