无法获得request.FILES django

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法获得request.FILES django相关的知识,希望对你有一定的参考价值。

我正在尝试将文本文件上传到我的django后端,但我的request.FILES总是空的。

我正在使用axios发送文件并遵循django要求将'multipart / form-data'作为请求的内容类型。

我错过了什么?

在我的app.js上,我通过以下方式发送帖子请求:

new Vue({
    el: '#app',
    data: {
        reqtype: '',
        uploadedFile: '',
    },
    methods: {
        onSubmit(event) {
            this.submitLoading = true;
            if (! this.validateForm(this)) {
                event.preventDefault();
                this.submitLoading = false;
                return;
            }
            var formData = new FormData();
            formData.append("reqtype", this.reqtype)
            formData.append('fileToUpload', this.uploadedFile)
            axios.post('/sreqtool/tc/', formData, {
                headers: {
                    'Content-Type': 'multipart/form-data'
                }
            })
        },
        onFileChange(e) {
            var files = e.target.files || e.dataTransfer.files;
            if (!files.length)
                return;

            var reader = new FileReader();
            var vm = this;

            reader.onload = (e) => {
                vm.uploadedFile = e.target.result;
            };

            reader.readAsDataURL(files[0]);
        }
    },
}

在网络请求有效负载上:

------ WebKitFormBoundarymAnl54hGVTifZzwM Content-Disposition:form-data; NAME = “reqtype”

基于文件

------ WebKitFormBoundarymAnl54hGVTifZzwM Content-Disposition:form-data; NAME = “fileToUpload”

data:text / plain; base64,OTA1NTIzMzg2NQ0KOTE3NTAwMTU0Mg0KOTc3NDczNjcyNg0KMTIzNTQ2ODQ1Ng == ------ WebKitFormBoundarymAnl54hGVTifZzwM--

在我的views.py中,我有:

@csrf_exempt
def index(request):
    if request.method == 'POST':
        DLOG.info(request.POST)
        DLOG.info(request.FILES)
        form = ExtractForm(request.POST, request.FILES)

        if form.is_valid():
            res = QueryManager.processRequest(request.user, form.cleaned_data)

DLOG是我的记录器,dlog的输出是:

[2017-12-18 16:51:06,510] INFO views index: <QueryDict: {u'fileToUpload': [u'data:text/plain;base64,OTA1NTIzMzg2NQ0KOTE3NTAwMTU0Mg0KOTc3NDczNjcyNg0KMT
IzNTQ2ODQ1Ng=='], u'reqtype': [u'filebased']}>
[2017-12-18 16:51:06,512] INFO views index: <MultiValueDict: {}>

以上是关于无法获得request.FILES django的主要内容,如果未能解决你的问题,请参考以下文章

Django接收多个文件上传

request.FILES 在文件上传时始终为空

django (文件操作)

django csv文件上传管理

Django——文件上传

我们如何比较 django 中的请求对象?