服务端
from flask import Flask, request
from base64 import b64decode
app = Flask(__name__)
@app.route('/server', methods=['POST'])
def server():
if request.mimetype == 'multipart/form-data': # 上传文件
data = request.files.get('file', None).read()
elif request.mimetype == 'application/json': # json格式
data = b64decode(request.json.get('file', None))
elif request.mimetype == 'application/x-www-form-urlencoded': # 表单格式
data = b64decode(request.form.get('file', None))
elif request.mimetype == '': # 二进制格式
data = request.data
if data is not None:
# 处理上传的文件
data = data
with open('test.jpg', 'wb') as f:
f.write(data)
return 'Success'
else:
return 'No file uploaded'
if __name__ == '__main__':
app.run()
客户端
import requests
from base64 import b64encode
filepath = 'img_0913.jpg'
with open(filepath, 'rb') as f:
img = f.read()
file = {'file': b64encode(img).decode()}
# 上传二进制数据
print(requests.post('http://localhost:5000/server', data=img).text)
# 上传json文件
print(requests.post('http://localhost:5000/server', json=file).text)
# 上传表单
print(requests.post('http://localhost:5000/server', data=file).text)
# 上传文件
print(requests.post('http://localhost:5000/server', files=file).text)