我正在尝试上传在“输入文件”上选择的文件。但是,我无法在django视图中获得此文件,request.POST
和request.FILES
都是空的,我认为问题出在jquery代码中。
此输入文件具有“ file_windows” ID。 表单具有“ form_upload” ID。 这是我的jquery代码:
$("#file_windows").change(function(){
var myform = document.getElementById("form_upload");
var fd = new FormData();
var file = document.getElementById('file_windows').files[0];
fd.append('file_win',file);
token_value=$("input[name=csrfmiddlewaretoken]").val();
$.ajaxSetup
({
beforeSend: function(xhr,settings)
{
xhr.setRequestHeader("X-CSRFToken",token_value);
}
});
$.ajax
({
url:"./ajax",method: 'POST',type:"POST",cache: false,enctype: 'multipart/form-data',processData: false,contentType: false,data:
{
"file_win":fd
},success: function(result)
{
alert(result);
}
});
});
这是我的Django视图函数:
def ajax_file_request(request):
if request.is_ajax():
#response=request.FILES["file_win"] multivaluedictkeyerror
print(request.FILES)
print(request.POST)
return HttpResponse("ajax request")
else:
respose = "Not Ajax"
return HttpResponse(respose)