Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / ограничить тип загружаемых файлов / 20 сообщений из 20, страница 1 из 1
17.11.2014, 18:39
    #38808718
rema174
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ограничить тип загружаемых файлов
Пробовал ограничить тип загружаемых файлов так
Код: html
1.
<input type="file" accept="image/jpeg,image/png,image/bmp" name="fileName" value="" />


но все равно принимает любые файлы, как это работает?
...
Рейтинг: 0 / 0
17.11.2014, 18:55
    #38808737
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ограничить тип загружаемых файлов
rema174,

Атрибут устанавливает только пользовательский фильтр для файлов в диалоге выбора файла. Ничто не мешает в диалоге ввести свою маску для файлов и подсунуть/передать что-то свое.
...
Рейтинг: 0 / 0
17.11.2014, 18:56
    #38808739
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ограничить тип загружаемых файлов
Браузер какой?
Если ограничить до image/jpeg, эффект сохраняется?
...
Рейтинг: 0 / 0
17.11.2014, 19:01
    #38808745
rema174
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ограничить тип загружаемых файлов
браузер firefox
...
Рейтинг: 0 / 0
17.11.2014, 19:03
    #38808747
rema174
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ограничить тип загружаемых файлов
ограничил до image/jpeg - эффекта нет
...
Рейтинг: 0 / 0
17.11.2014, 19:06
    #38808750
rema174
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ограничить тип загружаемых файлов
пробую такой скрипт
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
<script type="text/javascript">
	function Validatebodypanelbumper(theForm) {
		var extension = theForm.FileUpload.value
				.substr(theForm.FileUpload1.value.lastIndexOf('.'));
		if ((extension.toLowerCase() != ".gif")
				&& (extension.toLowerCase() != ".jpg") && (extension != "")) {
			alert("The \"FileUpload\" field contains an unapproved filename.");
			theForm.FileUpload1.focus();
			return false;
		}
		return true;
	}
</script>


в теге form
Код: html
1.
onsubmit="return Validatebodypanelbumper(this);"



и так не работает
...
Рейтинг: 0 / 0
17.11.2014, 21:49
    #38808866
Да ну
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ограничить тип загружаемых файлов
rema174,

C именами порядок наведите, и будет вам счастье:

1) fileName
2) FileUpload
3) FileUpload1
...
Рейтинг: 0 / 0
17.11.2014, 23:09
    #38808906
rema174
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ограничить тип загружаемых файлов
Да ну,

точно, спасибо!
...
Рейтинг: 0 / 0
18.11.2014, 01:22
    #38808970
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ограничить тип загружаемых файлов
rema174,

Позадаю наводящие вопросы...

Файл без расширения скрипт пропустит? Если я сменю у какого-то бинарника разширение на .JPG - что дальше? И у JPEG`ов расширения как минимум : JPG,JPEG,JP2,JPC - их все надо проверять.
...
Рейтинг: 0 / 0
18.11.2014, 08:21
    #38809043
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ограничить тип загружаемых файлов
можно проверить mime-тип файла с помощью FileReader'a: для картинок он возвращает соответствующий image/xxxx.
...
Рейтинг: 0 / 0
18.11.2014, 08:26
    #38809045
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ограничить тип загружаемых файлов
DarkMasterЕсли я сменю у какого-то бинарника разширение на .JPG - что дальше?можно загрузить файл В FileReader как data:[<mediatype>][;base64],<data>
если в <mediatype> окажется тип отличный от image/xxx, то это не картинка.

правда это только предположение, что FileReader анализирует содержимое, может он тоже на расширение ориентируется.
...
Рейтинг: 0 / 0
18.11.2014, 09:53
    #38809105
rema174
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ограничить тип загружаемых файлов
DarkMaster,

если вы про аттрибут accept, то я он похоже не работает, т.к. в окне выбора доступны к выбору все типы файлов,
а скрипт- это скорее защита от дурака, потом на сервере файл нужно колбасить, т.к. js можно и отключить в браузере, а на сервере железно
...
Рейтинг: 0 / 0
18.11.2014, 10:16
    #38809134
st_st
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ограничить тип загружаемых файлов
У меня и в Хроме и в FF работает, единственное в FF если перечислить mime через запятую, то по умолчанию выбраны все файлы (*), но ниже идут те, которые я указал в атрибуте accept, а если image/*, то сразу фильтруется по изображениям.
Здесь речь не о безопасности, а просто об удобстве, окно выбора файла открываешь и отфильтрованы только нужные мне типы. Главная проверка естественно делается на сервере.
...
Рейтинг: 0 / 0
18.11.2014, 12:36
    #38809358
rema174
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ограничить тип загружаемых файлов
accept="image/*" фильтрует
...
Рейтинг: 0 / 0
18.11.2014, 12:57
    #38809393
rema174
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ограничить тип загружаемых файлов
а что не так с этим скриптом? в ff не работает

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
<script type="text/javascript">
	function checkSize(max_img_size) {
		var input = document.getElementById("FileUpload");
		// check for browser support (may need to be modified)
		if (input.files && input.files.length == 1) {
			if (input.files[0].size > max_img_size) {
				alert("The file must be less than "
						+ (max_img_size / 1024 / 1024) + "MB");
				return false;
			}
		}

		return true;
	}
</script>



Код: html
1.
2.
3.
4.
<form id="theForm" method=post action="FileUploadServlet" 
		enctype="multipart/form-data" onsubmit="return checkSize(2097152);">

<input id="imagefile" type="file" accept="image/*" name="FileUpload" value="" />
...
Рейтинг: 0 / 0
18.11.2014, 12:59
    #38809395
rema174
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ограничить тип загружаемых файлов
опять имена перепутал -все работает )))
...
Рейтинг: 0 / 0
18.11.2014, 14:41
    #38809606
Яростный Меч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ограничить тип загружаемых файлов
AntonariyDarkMasterЕсли я сменю у какого-то бинарника разширение на .JPG - что дальше?можно загрузить файл В FileReader как data:[<mediatype>][;base64],<data>
если в <mediatype> окажется тип отличный от image/xxx, то это не картинка.

правда это только предположение, что FileReader анализирует содержимое, может он тоже на расширение ориентируется.FileReader анализирует только расширение.

проверить что выбрана картинка (а не переименованный в картинку хрен) можно так - http://jsfiddle.net/q4o44gm2/
...
Рейтинг: 0 / 0
18.11.2014, 15:18
    #38809679
rema174
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ограничить тип загружаемых файлов
Яростный Меч,

полезно
...
Рейтинг: 0 / 0
18.11.2014, 15:28
    #38809703
Яростный Меч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ограничить тип загружаемых файлов
rema174Яростный Меч,

полезноно не совсем кроссбраузерно - IE7-9 и старая опера в пролете.
Можно и через FileReader (для поддержки оперы 12), но вариант "URL.createObjectURL" более экономичен.
...
Рейтинг: 0 / 0
18.11.2014, 15:43
    #38809728
rema174
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ограничить тип загружаемых файлов
Яростный Мечrema174Яростный Меч,

полезноно не совсем кроссбраузерно - IE7-9 и старая опера в пролете.
Можно и через FileReader (для поддержки оперы 12), но вариант "URL.createObjectURL" более экономичен.
кто пользуется IE7-9 и старой оперой сам себе буратино
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / ограничить тип загружаемых файлов / 20 сообщений из 20, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]