Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.09.2014, 10:21
Профессор
Отправить личное сообщение для Гробовщик Посмотреть профиль Найти все сообщения от Гробовщик
 
Регистрация: 10.03.2013
Сообщений: 169

Удалить прикреплённые файлы
Доброго времени суток.
Решил реализовать загрузку файлов на сервер, но файлы должны быть исключительно "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);
Ответить с цитированием
  #2 (permalink)  
Старый 11.09.2014, 10:33
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

у тебя в переменной files хранится грубо говоря массив, элементы которого можно удалять
http://javascript.ru/Array/splice
Ответить с цитированием
  #3 (permalink)  
Старый 11.09.2014, 10:56
Аватар для MallSerg
Профессор
Отправить личное сообщение для MallSerg Посмотреть профиль Найти все сообщения от MallSerg
 
Регистрация: 07.03.2011
Сообщений: 1,138

Есть мнение что тех кто заменяет стандартное и ожидаемое поведение выбора файлов нужно лечить электрическим током.
Ответить с цитированием
  #4 (permalink)  
Старый 11.09.2014, 11:01
Профессор
Отправить личное сообщение для Гробовщик Посмотреть профиль Найти все сообщения от Гробовщик
 
Регистрация: 10.03.2013
Сообщений: 169

skrudjmakdak,
Элементы удалять я пытался files.splice (i,1); он не понимает, потому и обратился на форум
Ответить с цитированием
  #5 (permalink)  
Старый 11.09.2014, 11:04
Профессор
Отправить личное сообщение для Гробовщик Посмотреть профиль Найти все сообщения от Гробовщик
 
Регистрация: 10.03.2013
Сообщений: 169

MallSerg,
Зачем же так грубо? По сути мне надо загружать только изображения, мозила по умолчанию в выборе ставит все типы файлов, если пользователь выбрал только изображения то его это не коснётся, если же он выбрал кучу белеберды то будет проще если скрипт скажет выбирать только изображения и любезно только их и оставит, не думаю что это сильно "порвёт шаблон"
Ответить с цитированием
  #6 (permalink)  
Старый 11.09.2014, 11:16
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

да как то странно)) тогда можно сформировать свой массив:
убирает все файлы, которые начинаются единицы
<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>
Ответить с цитированием
  #7 (permalink)  
Старый 11.09.2014, 11:31
Профессор
Отправить личное сообщение для Гробовщик Посмотреть профиль Найти все сообщения от Гробовщик
 
Регистрация: 10.03.2013
Сообщений: 169

skrudjmakdak,
Не понимаю, он всё равно выбирает файлы с еденицей
Ответить с цитированием
  #8 (permalink)  
Старый 11.09.2014, 12:16
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

файлы, которые начинаются с 1цы, например: 1список_фамилий.txt
а ты себе уже поставь регулярку, на проверку изображений
Ответить с цитированием
  #9 (permalink)  
Старый 11.09.2014, 12:51
Профессор
Отправить личное сообщение для Гробовщик Посмотреть профиль Найти все сообщения от Гробовщик
 
Регистрация: 10.03.2013
Сообщений: 169

skrudjmakdak,
Ну я выбираю "инструкция.doc" "1309.jpg" "инженерка.cdw" он пишет выбрано 3 файла, а должен что 2
Ответить с цитированием
  #10 (permalink)  
Старый 11.09.2014, 12:52
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

какой браузер? мой код правил?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
подскажите как удалить div alex2012 jQuery 5 13.10.2016 17:43
Не удается удалить, добавленный элемент Megokryak jQuery 3 16.03.2014 20:48
Как удалить коммит github Maxmaxmaximus6 Оффтопик 59 01.01.2014 19:42
Можно ли удалить клонированный объект Евгений_86 jQuery 6 13.04.2011 12:54
Не могу выбрать и удалить клонируемые элементы AlexPrm jQuery 6 30.05.2010 15:58