Загрузка файла с помощью jQuery: пустые значения FormData - PullRequest
0 голосов
/ 04 октября 2018

Привет Stackoverflow.

В настоящее время у меня есть проблема, и я не могу выяснить, в чем проблема.Ранее я создавал загрузчики файлов, используя AJAX, и ни у одного из них не было следующей проблемы.Значение файла ввода остается пустым.Я пробовал это двумя способами.

Сначала я отправил всю форму с formData(this).Это сработало частично.Мои другие входные данные были отправлены в скрипт, который обрабатывает файл.Однако файла ввода не было.Даже если он был в той же форме, он просто не был отправлен с ним.

Теперь я пытаюсь сделать это следующим образом;

  $("#form").on('submit',(function(e) {
        e.preventDefault();

        var formData = new FormData();

        formData.append('customer', document.getElementById("customer").value);
        formData.append('owner', document.getElementById("owner").value);
        formData.append('uploaded_file', document.getElementById("upload").files[0]);

        $.ajax({
            url: "/api/upload",
            type: "POST",
            data:  formData,
            contentType: false,
            cache: false,
            processData:false,
            success: function(data)
            {
                var rtrn = jQuery.parseJSON(data);
                if(rtrn.return = "false")
                {
                    useGGA.createAlert(rtrn.message, rtrn.return, 7500);
                }
                else
                {
                    useGGA.createAlert(rtrn.message, rtrn.return, 7500);
                    $("#form")[0].reset();
                }
            },
            error: function()
            {
                useGGA.createAlert("Something went wrong!", "false", 7500);
            }
        });
    }));

Однако.Здесь у меня та же проблема.#upload просто остается пустым.Это мой HTML;

 <form id="form" action="api/upload" method="post" enctype="multipart/form-data">    
      <input type="text" name="owner" id="owner" value="<?= $this->model->data['owner'] ?>" readonly>
      <input type="text" name="customer" id="customer" value="<?= $this->werkstatt->data['ad_id'] ?>" readonly>    
      <input type="file" name="uploaded_file" id="upload">
      <input type="submit" class="__submit_green __launch_upload" value="Ausführen">
</form>

Когда я сейчас запускаю следующее в консоли;document.getElementById("upload").files[0], это возвращает меня Cannot read property 'files' of null.То же самое происходит при отправке формы.

Что я здесь пропускаю?

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