Как я могу ограничить свою форму, чтобы принимать только файлы JPEG
В основном, вы не можете. Вы должны проверить на сервере (что вам нужно сделать в любом случае , даже если вы можете проверить на клиенте; вы можете никогда доверять проверке на стороне клиента, всего). Но все налаживается. Появился новый Файловый API от W3C , который вы можете использовать в браузерах, которые его поддерживают (в основном Firefox, на данный момент; это была инициатива Mozilla), просто для лучшего пользовательский опыт для тех, кто с современными браузерами.
Редактировать И Герт Г указывает , что вот атрибут accept
, который может дать подсказку браузеру, что хорошо для браузеров, которые поддерживают это.
И есть ли какой-нибудь метод javascript для отображения прогресса?
Не напрямую, нет. Иногда возможно показать прогресс косвенно, используя синхронизированные серии ajax-запросов наряду с загрузкой и заставляя сервер сообщать вам, сколько он получил до сих пор, но это чревато трудностями и, вероятно, не стоит беспокоиться.
Это еще одна область, в которой файловый API может помочь, хотя вы можете обнаружить, что в процесс добавлена небольшая задержка: в основном, вы можете прочитать фрагмент файла локально, отправить его на сервер через ajax, обновить прогрессировать, читать и отправлять следующий фрагмент и т. д.
Конечно, есть Flash-загрузчики, такие как SWFUpload , которые показывают прогресс и тому подобное, если вы хотите использовать что-то проприетарное (но невероятно распространенное). (Вспышка, я имею в виду.)