Тип содержимого jQuery-File-Upload / проверка расширения - PullRequest
2 голосов
/ 02 февраля 2012

Я использую jQuery-File-Upload с rails 3, он работает очень хорошо.Но я не нашел ничего о том, как проверить расширение или тип содержимого загружаемого файла на стороне клиента.

Есть ли способ сделать это?

Потому что яв любом случае будет проверять его с помощью Paperclip на сервере-sid, но я думаю, что было бы лучше проверить его один раз на стороне клиента.

Ответы [ 2 ]

2 голосов
/ 02 февраля 2012

acceptFileTypes

Регулярное выражение для разрешенных типов файлов соответствует как типу файла, так и имени файла, поскольку только браузеры с поддержкой File API сообщают о типе файла.

Type: Regular Expression
Example: /(\.|\/)(gif|jpe?g|png)$/i

См. https://github.com/blueimp/jQuery-File-Upload/wiki/Options

0 голосов
/ 17 января 2013

Этот вопрос подразумевает, что вы (в отличие от большинства) понимаете, что, когда вы обнаруживаете только на расширении, что вы не проверяете тип mime.

В HTML5 вы можете использовать атрибут accept:

<input type="file" accept="video/*" />

Вы можете использовать несколько (запятых?) Значений.Но в спецификации говорится, что они разделены пробелами, но на самом деле я вижу только значения, разделенные запятыми.Помните: в браузерах с поддержкой HTML5 добавление дополнительной проверки излишне.

Но в случае, если ваш вопрос связан с другим использованием (например, загрузка файлов с помощью перетаскивания), вы можете использовать javascript вместо jquery:

if(!(file.type.indexOf('video/') == 0)) {
  alert('nope');
  return false;
  }

Нет необходимости говорить, что вам также следует выполнить проверку на стороне сервера.

...