Django: jquery ajax загрузка файла не работает. РЕШИТЬ - PullRequest
0 голосов
/ 29 марта 2020

Я пытаюсь загрузить файл, выбранный во входном файле. Однако я не могу получить этот файл в моем представлении django, request.POST и request.FILES как-то пусты, я думаю, что проблема в коде jquery.

Этот входной файл имеет " file_ windows "id. Форма имеет идентификатор "form_upload". вот мой 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,
        cache: 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 request", как и ожидалось при запуске моего ajax кода, но вывод на печать пуст: https://i.stack.imgur.com/E67xZ.png Как я могу решить эту проблему?

1 Ответ

0 голосов
/ 31 марта 2020

Я исправил это: проблема была в запросе ajax.

 data:
    {
         "file_win":fd
    },

это было неправильно, я должен написать «данные» таким образом

data:fd
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...