Flask 上传文件小例子

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
from flask import Flask, views, request, jsonify

app = Flask(__name__)

pkey = 'xxxxxx'
host = '127.0.0.1'
port = 9080
data = {'code': 200, 'msg': None}
# use:
# curl -F "rfile=@d:\12.txt" -F "ukey=xxxxxx" http://127.0.0.1:9080/upfile


class UpFile(views.MethodView):
methods = ['GET', 'POST']
decaorators = ['app.route']

def get(self):
data['code'] = 202
data['msg'] = 'forbidden'
return jsonify(data)

def post(self):
ukey = request.form.to_dict().get('ukey')
rfile = request.files.get('rfile')
if ukey == pkey and rfile is not None:
rfilename = rfile.filename
rfile.save(rfile.filename)
data['msg'] = '%s upload success' % rfilename
else:
data['code'] = 201
data['msg'] = 'error'
return jsonify(data)


app.add_url_rule("/upfile", view_func=UpFile.as_view("upfile"))

if __name__ == '__main__':
app.run(host=host, port=port)