2013-03-15 3 views
0

Хорошо, это расстраивает. Я много искал в google о том, как проверить выбранный файл (для загрузки) расширения и размера, но не имеет успеха в размере файла. У меня есть контроль загрузки изображений в asp.net (предназначенный для загрузки изображений), но расширение и размер файла проверяются на сервере. Вот как это работает. Что делать, если пользователь отправляет файл размером 1 ГБ, который является фильмом, переименованным в .jpg?Подтвердить загрузку файла с помощью javascript/jquery

Каким-то образом Twitter, например, удалось проверить входной файл на стороне клиента, как расширения, так и размер файла. У кого-нибудь есть идеи, как это сделать перед отправкой на сервер?

Спасибо!

LE: Нет, нет HTML5. Он не поддерживается во всех браузерах. Мне нужно решение для работы в IE 7 и 8!

+1

Похоже, вы не выглядят очень трудно и здесь. http://stackoverflow.com/questions/4112575/client-checking-file-size-using-html5 –

+0

Это слишком просто: https://www.google.com/search?q=jquery+file+upload + validation ... Я использую https://github.com/valums/file-uploader для async-загрузок, но вы можете просто использовать биты проверки, если хотите – BLSully

ответ

3

Если браузер пользователя поддерживает html5 fileapi, вы можете прочитать размер файла из ввода файла.

document.getElementById('file').files[0].size //size of file in bytes 
document.getElementById('file').files[0].name //name of file 
document.getElementById('file').files[0].type //mime type 
+0

Спасибо за ответ, но исправьте меня, если я ошибаюсь, html5 не поддерживается во всех современных браузерах. IE 7 и 8, вероятно, событие 9 не поддерживает его? Мне нужен метод для работы с ними. – osmiumbin

+0

Вы говорите, что современные браузеры, но вы называете IE7 и 8 (и 9)? Если вы хотите, чтобы это работало во всех этих браузерах, которые, на мой взгляд, не являются хорошей идеей, вам может потребоваться изучить специфические для браузера решения, такие как ActiveXObject в IE или даже * dum dum dum * Flash. – Musa

0

HTML5 api, как указал Муса, вероятно, отфильтровал бы большинство случаев.

Есть собственные методы ActiveX, которые тоже могут это сделать, но поддержка немного неизвестна.

Вспышка может сделать проверку для вас, если вы настаиваете на не html5, вы можете посмотреть в чем-то вроде SWFUpload https://code.google.com/p/swfupload/

Смежные вопросы