2016-05-04 8 views
0

Ext JSからファイルをアップロードするコードを書こうとしています。バックエンドはDjangoにあります。ファイルを取得してサーバーに保存する必要があります。これまで私が試したことがあります。ext js 6からのファイルアップロードを扱うDjangoサーバーサイドコード

 { 
     xtype:'form', 
     items:[ 
      { 
       id:'uploadfile', 
       reference:'uploadfile', 
       xtype:'filefield', 
       fieldLabel:'Choose file', 
       buttonText:'Browse' 
      }, 
      { 
       xtype:'button', 
       text:'Upload', 
       width:'10%', 
       margin:'0 500 0 500', 
       handler: function() { 
       console.log("Upload clicked"); 
       var form = this.up('form').getForm(); 
       if(form.isValid()){ 
       form.submit({ 
       url: '/file-upload/', 
       params: { 
        csrfmiddlewaretoken: Ext.util.Cookies.get('csrftoken'); 
       }, 
       waitMsg: 'Uploading your file ...', 
       success: function(fp, o) { 
        alert('Success'); 
       }, 
       failure: function(form, action) { 
        alert('Failed'); 
       } 
       }); 
      } 
     } 
    } 

今、これは私がサーバーにファイルを取得するにはどうすればよいImは

@ensure_csrf_cookie 
def file_upload(request): 
    save_to_file = path.join(settings.DATA_STORE,"uploads","up_file.txt") 
    destination  = open(save_to_file , 'wb+') 

    ## Here how do I get the uploaded file info from request? 
    ## like request.FILES['some_thing'] 
    ## or request.POST['some_thing'] 

    for chunk in file.chunks(): 
     destination.write(chunk) 

    destination.close() 

Djangoのビューにしようと何ですか?ヘルプを感謝します。おかげ

+0

request.POSTにアクセスしようとしましたか?また、リクエスト全体を印刷し、アップロードされたファイルを含むタグを見つけることができるかどうかを確認することもできます。 –

答えて

0

あなたがname: 'uploadfile'のように、あなたのfilefieldreferenceidは十分ではありません)に名前を割り当てる必要があります。その後、Django側のrequest.FILES['uploadfile']にアクセスできます。

+0

「serg」に感謝します。私はクローム開発ツールを使い、リクエストヘッダからparam名を見つけ、 'request.FILES ['param_name']'を実行しました。これは私の問題を解決しました。 – CoooolllYuvee