2013-08-09 4 views
0

Ajax로 파일을 업로드하려고했습니다. 하지만 POST 요청은 비어 있습니다.Ajax POST 요청이 비어 있습니다.

뷰에서
var fd = new FormData(); 
fd.append('file', files[0].name); 
alert(files[0].name); 
$("#form_upload").submit(); 
$.ajax({ 
    method: "POST", 
    url: "/dropupload/", 
    contentType: false, 
    processData: false, 
    data: fd, 
    success: function(data) { 
     waitforprocess(); 
    }, 
    complete: function(data){ 
     alert(formdata.size) 
    }, 
    error: function(){ 
     allert("error") 
    } 
}); 

POST 비어 있는게입니다

def post(request): 
    q = request.POST.get("file") 

Q = 없음 POST가 비어있는 이유는

?

+0

그냥 빨리 메모 FormData()가'있다'것을되지 않음 지원 예를 들어 IE는 v10 이상을 필요로합니다. 따라서 Windows 7 이상이 필요합니다. – knbk

+0

은 양식 multipart add enctype = 'multipart/form-data'입니다. – maazza

답변

1

새 FormData 객체를 만드는 대신 양식 데이터를 직렬화 해보십시오. 마찬가지로 :

var $form = $("#form_upload").find('form'); 
var fd = $form.serialize(); 
// ... 
0

을 다음보십시오 : 확인, 또한

var fd = new FormData($("#form")[0]); 

를, 양식 선언은 올바른 :

<form id="form" enctype="multipart/form-data">       
    <input type="file" name="file" /> 
</form> 
관련 문제