2013-05-27 2 views
2

Мне нужно ограничить пользователей загрузкой определенных типов файлов, как мне это сделать? Я знаю, что могу получить файл и проверить переменную ContentType, но мне нужно изменить способ поиска файлов в браузере.Как ограничить пользователей загрузкой определенного типа файла?

Допустим, требуемый тип файла CSV, когда они нажимают на загрузку и откроется окно для поиска файлов в их файловой системы, они должны быть только в состоянии видеть файлы с расширением CSV. Таким образом, они вынуждены загружать CSV-файлы, поскольку ни один другой файл не может быть выбран.

<s:form id="uploadCSV" method="POST" action="add" enctype="multipart/form-data"> 
    <s:file name="csv" label="Upload File"/> 
    <s:submit/> 
</s:form> 
+0

для запуска тестов можно использовать это: http://www.w3schools.com/tags/tryit.asp?filename=tryhtml_input_accept – KNU

ответ

3

Некоторые браузеры поддерживают атрибут «accept» с элементом управления входным файлом. Если вы ищете поддержку браузера, возможно, вам понадобится использовать любой плагин для загрузки на основе флэш-памяти.

Кроме этого, как вы сказали, проверка ContentType - единственный способ сделать это.

+0

Я использую не вводить – J888

+1

Это не должно быть проблемой, вы также можете использовать обычный ввод HTML тег файла с тем же именем, что и свойство Bean. Struts позаботится о привязке. – KishoreK

1

В стандарте HTML5 для входных элементов указывается accept attribute. Это позволяет определить тип MIME и расширение и стандарт рекомендует Определяя оба, так что ваш код должен выглядеть следующим образом:

<input type="file" accept=".csv,text/csv"></input> 

HTML4 does not allow specifying extensions, так что вы можете использовать только тип MIME:

<input type="file" accept="text/csv"></input> 
+0

html5 не поддерживается всеми браузерами, есть ли альтернатива этому? – J888

+0

Да, используя HTML4. Но, кажется, все основные браузеры поддерживают атрибут accept5 HTML5: http://www.wufoo.com/html5/attributes/07-accept.html Кроме того, вы можете выполнить некоторую проверку JS на стороне клиента, которая проверяет расширение, но это не ограничивает файлы, доступные в диалоговом окне ввода. – Chris

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