Ситуация такая: Есть форма в которой присутствует окно для текстового сообщения и кнопка "Прикрепить файлы".
Пишу текст, жму кнопку "Прикрепить файлы", выбираю 2-3файла, и тут вспоминаю, что мне надо к этому сообщению добавить еще файлик. Повторно жму кнопку "Прикрепить файлы", выбираю... и получается что 2-3 файла выбранные ранее у меня теряются.
Сейчас я сделала так: в момент выбора с помощью XMLHttpRequest загружаю файлы на сервер, и тогда повторный выбор файлов не уничтожает первичный. Но сейчас File API позволяет все что угодно делать с файлами до загрузки на сервер и поэтому справедливо возникает вопрос, а нельзя ли каким-то образом сохранить первичный $_FILSE и к нему добавлять новые файлы до загрузки на сервер?
<form name="flsms" method="POST" ACTION="index.php?up_lod" enctype="multipart/form-data">
<textarea name="message" id="message" style="width: 99%;" rows="8" WRAP="physical" required></textarea>
<button onclick="showFileInput()">Прикрепить файлы</button>
<input name="uploads[]" type="file" id="fileInput" style="display:none;" multiple="multiple" onchange="processFiles(this.files)">
<div id="fileOutput" name="fileOutput"></div></form>
function processFiles(files) {
var formData = new FormData();
for (var i = 0, f; f = files[i]; i++) {
formData.append("uploadfile" + i, f);
}
var req;
if (window.XMLHttpRequest)
req = new XMLHttpRequest();
else if (window.ActiveXObject) {
// Internet Explorer
try {
req = new ActiveXObject('Msxml2.XMLHTTP');
} catch (e) {
}
try {
req = new ActiveXObject('Microsoft.XMLHTTP');
} catch (e) {
}
}
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4 && req.status == 200) {
document.getElementById('fileOutput').innerHTML = req.responseText
}
};
req.open('POST', "index.php?load_filse", true);
req.send(formData);
}
}
function showFileInput() {
var fileInput = document.getElementById("fileInput");
fileInput.click();
}