Привет 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
.То же самое происходит при отправке формы.
Что я здесь пропускаю?