Django:jquery ajax文件上传不起作用。解决了

我正在尝试上传在“输入文件”上选择的文件。但是,我无法在django视图中获得此文件,request.POSTrequest.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)

运行我的Ajax代码时,它会按预期响应"ajax request",但打印输出为空:

Django:jquery ajax文件上传不起作用。解决了

我该如何解决这个问题?

mingdaoke 回答:Django:jquery ajax文件上传不起作用。解决了

我修复了它: 问题出在ajax请求中。

 data:
    {
         "file_win":fd
    },

这是错误的,我必须以这种方式写入“数据”

data:fd
本文链接:https://www.f2er.com/2558435.html

大家都在问