Загрузка файла - ограничение типов файлов в окне «Загрузка файла» - PullRequest
4 голосов
/ 15 сентября 2010

У меня есть вопрос относительно загрузки файлов, мне нужно ограничить типы файлов, но мне нравится делать это в окне «Загрузка файла», чтобы пользователь даже не мог видеть файлы, которые не разрешены для загрузки, мне нравится сделать это в JS или JQuery.

Я знаю, что это возможно, например, плагин uploadify делает это, но я не хочу использовать его по ряду причин.

Ответы [ 2 ]

2 голосов
/ 15 сентября 2010

Попробуйте эту ссылку. Это должно дать вам о том, что вам нужно. Он просто использует простой JavaScript, я не думаю, что есть какие-либо варианты JQuery для этого.

http://www.codestore.net/store.nsf/unid/DOMM-4Q8H9E

<script type="text/JavaScript">
<!-- Begin
function TestFileType( fileName, fileTypes ) {
if (!fileName) return;

dots = fileName.split(".")
//get the part AFTER the LAST period.
fileType = "." + dots[dots.length-1];

return (fileTypes.join(".").indexOf(fileType) != -1) ?
alert('That file is OK!') : 
alert("Please only upload files that end in types: \n\n" + (fileTypes.join(" .")) + "\n\nPlease select a new file and try again.");
}
// -->
</script>

Я обновил этот ответ фактическим кодом из размещенной ссылки. Как отмечает автор, это не является «безопасным» решением этой проблемы. Поскольку это клиентский JavaScript, расширение файла может быть легко изменено с помощью инструментов веб-разработки. Всегда проверяйте загруженные файлы на стороне сервера, чтобы предотвратить загрузку вредоносных файлов.

0 голосов
/ 15 сентября 2010

Насколько мне известно, мы можем сделать это, как показано ниже, но все равно диалог содержит все типы файлов:

<input type="file" name="pic" id="pic" accept="image/gif, image/jpeg" />

Но вы можете ограничить загрузку файлов неправильного типа с помощью Jquery / Javascript,Я думаю, перед отправкой файла на сервер, проверив расширение.

...