2016-10-08 9 views
1

私はdjangoにhtmlからajax呼び出しでファイルをアップロードしようとしています。ファイルをdjangoにアップロード

クライアント側:

<input type="file" class="text-field" name="media"> 
<input type="button" class="btn" value="SEND"> 


var files; 

      $('.text-field').change(function(){ 
       files = this.files; 
       console.log(files); 
      }); 

$('.btn').click(function(){ 
       var data = new FormData(); 

       $.each(files, function(key, value){ 
        data.append(key, value); 
        console.log(key + ' : ' + value); 
        console.log(value); 
       }); 



$.ajax({ 
       type: 'POST', 
       url: 'url', 
       enctype: 'multipart/form-data', 
       data: data, 
       cache: false, 
       dataType: 'json', 
       processData: false, 
       contentType: false, 
       success: function(data){ 
        console.log(data); 
       } 
      }); 

BACK側:

@csrf_exempt def my_file(request): 
    print request.POST 
    print request.FILES 

結果:

MultiValueDict: {u'0': [TemporaryUploadedFile: about.php (application/octet-stream)]} 

答えて

0

アップロードするには、私はファイルをアップロードすることができます方法を理解するために私を助けてくださいDjangoを介したファイル、あなたはmおそらく、django形式を使用する必要があります。フォームがあなたの入力を検証し確認することができ、その後、あなたはあなたのサーバにファイルを保存することができたよう

def upload_file(request): 
if request.method == 'POST': 
    form = UploadFileForm(request.POST, request.FILES) 
    if form.is_valid(): 
     instance = ModelWithFileField(file_field=request.FILES['file']) 
     instance.save() 
     return HttpResponseRedirect('/success/url/') 
else: 
    form = UploadFileForm() 
return render(request, 'upload.html', {'form': form}) 

:ここでは、ファイルをアップロードする方法と同様に一例です。このトピックの詳細については、djangoのドキュメントを参照してください。

https://docs.djangoproject.com/en/1.10/topics/http/file-uploads/

関連する問題