Удалить прикреплённые файлы
Доброго времени суток.
Решил реализовать загрузку файлов на сервер, но файлы должны быть исключительно "image.*" Конечно при загрузке на сервер скрипт их проверяет и другие файлы просто игнорирует, но хотелось бы не шокировать пользователя и удалять непотребные файлы сразу после их выбора т.е. пользователь выбрал 10 файлов разного формата, скрипт нашёл 7 изображений, сказал пользователю, что нельзя добавлять не изображения и показал что Выбрано 7 файла(ов) Фотографии: <input id="files" name="files[]" multiple="" type="file" /> <br /> <output id="list"></output> function handleFileSelect(evt) { document.getElementById('list').innerHTML=""; var files = evt.target.files; // FileList object for (var i = 0, f; f = files[i]; i++) { if (!f.type.match('image.*')) { //Здесь должна быть строка удаления файла alert(files); continue; } var reader = new FileReader(); reader.onload = (function(theFile) {for(var u in theFile) alert(u+'='+theFile[u]+'==<'); return function(e) {//alert(e.target.result); var span = document.createElement('span'); span.innerHTML = ['<img class="thumb" width="100" height="111" style="border: 1px solid #000; margin: 10px 5px 0 0;" src="', e.target.result, '" title="', escape(theFile.name), '"/>'].join(''); document.getElementById('list').insertBefore(span, null); }; })(f); reader.readAsDataURL(f); } } document.getElementById('files').addEventListener('change', handleFileSelect, false); |
у тебя в переменной files хранится грубо говоря массив, элементы которого можно удалять
http://javascript.ru/Array/splice |
Есть мнение что тех кто заменяет стандартное и ожидаемое поведение выбора файлов нужно лечить электрическим током.
|
skrudjmakdak,
Элементы удалять я пытался files.splice (i,1); он не понимает, потому и обратился на форум |
MallSerg,
Зачем же так грубо? По сути мне надо загружать только изображения, мозила по умолчанию в выборе ставит все типы файлов, если пользователь выбрал только изображения то его это не коснётся, если же он выбрал кучу белеберды то будет проще если скрипт скажет выбирать только изображения и любезно только их и оставит, не думаю что это сильно "порвёт шаблон" |
да как то странно)) тогда можно сформировать свой массив:
убирает все файлы, которые начинаются единицы <html> <head> </head> <body> <input type="file" onchange="ch(event)" multiple> <script> function ch(e) { var files = e.target.files, myfiles = [], file; for(var i = 0, ln = files.length; i < ln; ++i) { file = files[i]; if (file.name[0] != '1') { myfiles.push(file); } } console.log(myfiles); } </script> </body> </html> |
skrudjmakdak,
Не понимаю, он всё равно выбирает файлы с еденицей |
файлы, которые начинаются с 1цы, например: 1список_фамилий.txt
а ты себе уже поставь регулярку, на проверку изображений |
skrudjmakdak,
Ну я выбираю "инструкция.doc" "1309.jpg" "инженерка.cdw" он пишет выбрано 3 файла, а должен что 2 |
какой браузер? мой код правил?
|
skrudjmakdak,
FireFox Нет не правил, запускаю кнопкой посмотреть |
вот я вам скрины наделал, у меня все ок. я не знаю что и как у вас не получается:
![]() ![]() |
А вот что вы имели ввиду) Я думал, что возле кнопки обзор будет надпись выбран 1 файл (или типо того), что бы он непотребные файлы удалял изначально
|
ну дак если из объекта FileList мы ничего не удалили (он не дает) значит там и остануться все файлы. кстати вы можете очистить эту кнопку, если она вас так беспокоет. самое главное, что у вас есть новый массив с нужными для вас файлами
|
Часовой пояс GMT +3, время: 09:21. |