标头和边界包含在上载的文件Django Rest框架中 [英] headers and boundary included in uploaded file django rest framework

查看:49
本文介绍了标头和边界包含在上载的文件Django Rest框架中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用Django Rest Framework通过ajax将csv文件上传到Django。我已完成所有工作,但请求标头中的数据包含在文件内容中。

I'm uploading a csv file to Django via ajax, using Django Rest Framework. I have everything working, but data from the request headers is included with the file content.

我期望这些标头已从文件内容中删除,因此文件

I was expecting these headers to have been stripped from the file content, so the file would look exactly like the uploaded file.

有什么想法吗?

...

Django视图

class FileUploadView(APIView):
    parser_classes = (FileUploadParser, )

    def post(self, request, format=None):    
        file = request.FILES['file']
        fs = FileSystemStorage()
        fs.save('output.csv', file)

input.csv:

input.csv:

Date,Customer,Team Member,Services
09-25-2018 03:30 PM,Suzy16 Neil16,Suzy,Men's Haircut | Legs
09-25-2018 03:30 PM,Suzy16 Neil16,Suzy,Men's Haircut | Legs
09-25-2018 03:30 PM,Suzy16 Neil16,Suzy,Men's Haircut | Legs
...

output.csv:

output.csv:

------WebKitFormBoundarycaNCidFSnOuN1u0G
Content-Disposition: form-data; name="file"; filename="input.csv"
Content-Type: text/csv

Date,Customer,Team Member,Services
09-25-2018 03:30 PM,Suzy16 Neil16,Suzy,Men's Haircut | Legs
09-25-2018 03:30 PM,Suzy16 Neil16,Suzy,Men's Haircut | Legs
09-25-2018 03:30 PM,Suzy16 Neil16,Suzy,Men's Haircut | Legs
...

------WebKitFormBoundarycaNCidFSnOuN1u0G--

来自HTTP请求的相关标头:

Relevant Headers From HTTP Request:

Content-Disposition: attachment; filename=services.csv
Content-Type: multipart/form-data; boundary=----WebKitFormBoundarycaNCidFSnOuN1u0G


推荐答案

MultiPartParser 是我想要的,因为前端将表单作为多部分表单发送。

The MultiPartParser was what I was looking for as the front-end was sending up the form as a multipart form.

class FileUploadView(APIView):
    parser_classes = (MultiPartParser,)
    ...

这篇关于标头和边界包含在上载的文件Django Rest框架中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆