Python flask 实现文件发送和接收保存

Python flask 实现文件发送和接收保存

1.先用flask起个服务

import json

from flask import Flask, request

app = Flask(__name__)

@app.route("/a", methods=["POST"])

def save_file():

data = request.files

print(type(data))

print(data)

file = data['file']

print(file.filename)

print(type(request.headers))

print(request.headers)

print(request.headers.get('File-Name'))

# 文件写入磁盘

file.save(file.filename)

return "已接收保存"

if __name__ == '__main__':

app.run(host="0.0.0.0", port=1234)

2. 本地客户端使用requests.post发送文件

import json

import os

import requests

src_dir = 'E:\\a'

for root, dirs, files in os.walk(src_dir, topdown=True):

for name in files:

file = os.path.join(root, name)

files_t = {'file': ('new_' + name, open(file, 'rb'))}

headers = {'File-Name': 'new_' + name}

r = requests.post("http://192.123.123.123:1234/a", files=files_t, headers=headers)

print(r.text)

print(r)

3. 下面是二进制流转发

import json

from flask import Flask, request

app = Flask(__name__)

@app.route("/a", methods=["POST"])

def save_file():

data = request.data

print(data, '---------------')

file_name = request.headers.get('File-Name')

print(file_name)

with open(file_name, 'wb') as f:

f.write(data)

return "已接收保存"

if __name__ == '__main__':

app.run(host="0.0.0.0", port=1234)

import json

import os

import requests

src_dir = 'E:\\a'

for root, dirs, files in os.walk(src_dir, topdown=True):

for name in files:

file = os.path.join(root, name)

files_t = {'file': ('new_' + name, open(file, 'rb'))}

headers = {'Content-type': 'application/octet-stream', 'File-Name': 'new_' + name}

with open(file, 'rb') as f:

r = requests.post("http://192.123.123.123:1234/a", data=f, headers=headers)

print(r.text)

print(r)

参考文档:

https://docs.python-requests.org/en/latest/user/quickstart/#post-a-multipart-encoded-file

https://blog.csdn.net/iloveyin/article/details/21444613

🌸 相关推荐 🌸

《阴阳师》座敷童子哪里多 线索和分布位置
365bet手机注册

《阴阳师》座敷童子哪里多 线索和分布位置

📅 07-20 👀 6880
回精有甚麼危害,如何治療
bte365娱乐场

回精有甚麼危害,如何治療

📅 06-28 👀 6163
茶杯犬寿命
365bet手机注册

茶杯犬寿命

📅 07-21 👀 5428