Загрузка файла Javascript в 2 этапа - PullRequest
0 голосов
/ 04 ноября 2019

Я знаю, что есть много тем, объясняющих загрузку файла через javascript. Но у меня проблема в другом.

У меня есть загрузка файлов с простым JS, которая работает нормально, но моя проблема в том, что я не хочу, чтобы файлы сразу загружались после выбора их из формы. Потому что форма имеет другое поле ввода, и я хочу загрузить все на сервер после нажатия кнопки сохранения через ajax. Я также не хочу обновлять страницу, поэтому все должно проходить через ajax.

Короче говоря: в моей форме есть 3 поля ввода (текст), поле ввода (файл) и кнопка сохранения. После нажатия кнопки сохранения форма вызывает функцию JS, которая должна обрабатывать данные (тексты и файлы) и отправлять их через ajax на сервер.

Надеюсь, я смог объяснить проблему.

<form>
<input type="text" name="field1">
<input type="text" name="field2">
<input type="text" name="field3">
<input type="file" name="file" multiple id="myFile" onchange="uploadPicture()">
</form>

И JS

function uploadPicture() {
var formData = new FormData();
for (var i = 0; i < document.getElementById('myFile').files.length[i]) {
formData.append('files[]', file);
....
and in here I send the formData via ajax to my server, which works fine.

Теперь моя проблема не в том, чтобы отправить данные прямо на сервер, а сохранить их временно, а затем после нажатия кнопки сохранения отправить все на сервер ...

Интересно, есть ли способ (хитрость) сохранения файлов между загрузкой и отправкой?

Надеюсь, теперь это стало понятнее.

Спасибо

1 Ответ

1 голос
/ 04 ноября 2019

Переместите объявление вашей переменной formData во внешнюю область, добавьте только файлы в uploadPicture и затем используйте formData в обработчике кликов на кнопке сохранения.

Я надеюсь, чтопомогает.

...