DRF file.read() 包含 HTML 标头信息,而不仅仅是文件内容



我不确定问题出在哪里,但是file.read((应该只给我文件内容。我正在打印出前 200 个字符并获取内容标题,而不仅仅是上传的文件数据。

上传者

local_file = os.path.join(basedir, 'a.jpg')
url = baseurl + 'a.jpg'
files = {'file': open(local_file, 'rb')}
headers = {'Authorization': 'Token sometoken'}
r = requests.put(url, files=files, headers=headers)
print(r.status_code)

视图

class FileUploadView(BaseAPIView):
parser_classes = (FileUploadParser,)
def put(self, request, filename):
file_obj = request.FILES['file']
data = file_obj.read()
print(data[:200])
return Response(status=HTTP_204_NO_CONTENT)

打印的输出是:

b'--139822073d614ac7935850dc6d9d06cd\r内容处置: 表单数据; 名称="文件"; 文件名="a.jpg"\r\r\xff\xd8\xff\xe0\x00\x10JFIF\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x00\x00\x00\xff\xe1!(Exif

\x00\x00II*\x00\x08\x00\x00\x00\r\x00\x0b\x00\x02\x00\r\x00\x00\x00\xaa\x00\x00\x00\x00\x01\t\x00\x01\x00\x00\x00\x00x\x03\x00\x00\x00\x01\x01\t\x00\x01\x00\x00\x00\x00\xe8\x03\x00\x00\x0f\x01\x02\x00\x04\x00\x00\x00HTC\x00\x10\x01\x02\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00'为什么我会看到所有这些额外的数据,而不仅仅是文件内容?迪斯一直在让我发疯,可能会变得简单。

使用 FileUploadParser,您需要发送包含数据的文件内容

with open(local_file, 'rb') as fh:
r = requests.put(url, data=fh, headers=headers, verify=False)

相关内容

最新更新