Удалить прикреплённые файлы
Доброго времени суток.
Решил реализовать загрузку файлов на сервер, но файлы должны быть исключительно "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 |
какой браузер? мой код правил?
|
| Часовой пояс GMT +3, время: 10:24. |