首页 > 解决方案 > 使用 python web 服务移动文件

问题描述

假设我想将带有一些元数据的图像文件发布到 Web 服务,然后将该文件保存到某个位置。我该怎么做?我已经看到了发布数据的示例和从请求中获取数据的示例,但是无法使两者都起作用,这意味着我也无法验证。所以这是我从我在这里找到的样本和另一个样本中挑选出来的代码的一个体:

import requests
import json
import cv2
import shutil

content_type = 'image/jpeg'
headers = {'content-type': content_type}
addr = 'http://127.0.0.1:5000'
test_url = addr + '/step/Update-Image'
path = 'D:/Temp/TrainingPics'
inFile = "/Drew16.jpg"
outFile = "/Test.jpg"

image_metadata = {'UserId': 'test', 'Type': 'test2'}
data = {'name': 'drew16.jpg', 'data': json.dumps(image_metadata)}
files = {'media': open(path + inFile, 'rb')}
r = requests.post(test_url, files=files, data=image_metadata)

if r.status_code == 200:
    with open(path + outFile, 'wb') as f:
        r.raw.decode_content = True
        shutil.copyfileobj(r.raw, f)

我得到一个状态码 200,但输出文件已损坏,我看不到在哪里提取元数据。我在哪里错了?任何帮助,将不胜感激。

标签: pythonrest

解决方案


推荐阅读