• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

无法获得request.FILES django

django 来源:Juan Cornejo 7次浏览

我想上传一个文本文件到我的django后端,但我的request.FILES始终是空的。无法获得request.FILES django

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

我缺少什么?

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]); 
     } 
    }, 
} 

在网络上请求有效载荷:

在我app.js我经由发送POST请求

—— WebKitFormBoundarymAnl54hGVTifZzwM内容处置:形状数据; NAME = “reqtype”

基于文件

—— WebKitFormBoundarymAnl54hGVTifZzwM内容处置:形状数据; NAME = “fileToUpload”

数据: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: {}> 


===========解决方案如下:

它说你的我法师编码为base64

{u'fileToUpload': [u'data:text/plain;base64,OTA1NTIzMzg2NQ0KOTE3NTAwMT... 

版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)