Добавление файлов к уже выбранным до загрузки на сервер
Ситуация такая: Есть форма в которой присутствует окно для текстового сообщения и кнопка "Прикрепить файлы".
Пишу текст, жму кнопку "Прикрепить файлы", выбираю 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(); } |
считывай через FileReader в переменную уже выбранные файлы по событию onchange.
|
Часовой пояс GMT +3, время: 07:48. |