【发布时间】:2017-09-27 17:24:49
【问题描述】:
我正在尝试使用 Rest 将文件上传到 DJango Python API。但我注意到文件被修改了。具体来说,会向其中添加内容处置。我还没有找到删除它的好方法。问题是我正在尝试上传需要解压缩的 tar,但修改后的内容会阻止解压缩文件。
我在休息页面上使用这个文件解析器: 从 rest_framework.parsers 导入 FileUploadParser
以下代码似乎在 APIView 的 post 方法中为我获取文件
file_obj = request.FILES['file']
scanfile.file.save(file_obj.name, file_obj)
其中 scanfile 是具有文件字段的模型。 该文件将保存如下内容:
--b3c91a6c13e34fd5a1e253b1a72d63b3
Content-Disposition: form-data; name="file"; filename="sometar.tgz"
My tar file contents here.....
--b3c91a6c13e34fd5a1e253b1a72d63b3
我的客户是这样的:
filename = "sometar.tgz"
exclusion = "../../exclusionlist.txt"
headers = {'Content-Type': 'multipart/form-data;’,
'Authorization': 'JWT %s' % token,
}
url = "http://localhost:%s/api/scan/Project/%s/" % (port, filename)
#files = {'file': open(filename, 'rb'), 'exclusion_file': open(exclusion, 'rb')} # also tried this way but it just put the info in the same file and I see the headers in the file
files = [('file', open(filename, 'rb')), ('file', open(exclusion, 'rb'))]
x = requests.post(url, files=files, headers=headers)
所以我的问题是如何从保存的文件中删除内容处置信息,以便正确解压缩文件?
【问题讨论】:
标签: python django django-rest-framework