嘿,我有点问题。我编写了一个django restframework api,用于将文件上载到本地目录。当涉及到PDF时,它似乎工作得非常好,但是任何其他类型的格式都会损坏文件并使其无法打开。你知道吗
(包括png/jpg/任何其他图片格式、txt文件、xlsx文件等) 这些文件保存在正确的路径中非常好,它们的命名是恰当的,没有问题。你知道吗
class UploadInvoiceFile(APIView):
parser_classes = (FileUploadParser, MultiPartParser)
def put(self, request, filename, specific_path='admin'):
file_obj = request.data['file']
file_path = settings.INVOICE_URL[admin]
file = file_path+'/'+filename
if not os.path.exists(file_path):
os.makedirs(file_path)
with open(file, 'wb+') as destination:
for chunk in file_obj.chunks():
destination.write(chunk)
return Response(status=204)
更新: 我发现当前选择的文件中保存了其他内容
----WebKitFormBoundaryKDALl9LeBZb6xbOo 内容处理:表单数据;name=“file”;filename=“123.txt” 内容类型:文本/纯文本
文件数据
----WebKitFormBoundaryKDALl9LeBZb6xbOo--
FileUploadParser
假定传入请求是原始字节流,并将其作为一个整体进行解析。它通常在parser_classes
中listed on its own,因为它将为任何类型的传入数据激活。你知道吗在您的例子中,您发送的是一个多部分请求,它被
FileUploadParser
接收,整个东西-边界和所有-保存为一个文件。因此您可以在文件中看到WebKitFormBoundary
。你知道吗您应该从
parser_classes
中删除FileUploadParser
,并让MultiPartParser
正确解析多部分请求。你知道吗相关问题 更多 >
编程相关推荐