Я использую плагин dropzone.js, чтобы добавить загрузчик изображений в мое приложение. Я знаю, что это, вероятно, действительно основной вопрос, поэтому извинения, но я хочу ограничить расширение файлов. Это работает для одного расширения файла,
<script type="text/javascript"> Dropzone.options.dropzone = { accept: function(file, done) { console.log(file); if (file.type != "image/jpeg") { done("Error! Files of this type are not accepted"); } else { done(); } } } </script>
Поэтому мой вопрос заключается в том, как добавить несколько расширений файлов, то есть image/jpeg
, image/png
?
благодаря
Вы можете добавить дополнительные расширения для своего, if
:
if (file.type != "image/jpeg" && file.type != "image/png") {
Это проверяет, отличается ли тип файла от ВСЕХ указанных вами типов. Чтобы файл прошел проверку, он должен отличаться от изображения / jpeg AND image / png
Обновить
Я бы посоветовал посмотреть на ответ enyo, так как он является автором Dropzone.
Я автор Dropzone.
Вы должны использовать acceptedMimeTypes
acceptedFiles
. Это ведет себя точно так же, как свойство accept
элемента input
. Таким образом, даже резерв будет работать правильно.
Допустимые свойства acceptFiles могут выглядеть так:
audio/*
image/*
image/jpeg,image/png
EDIT : в последних версиях Dropzone это свойство называется acceptedFiles
и оно позволяет также определять расширения. Так что это сработает:
"audio/*,image/*,.psd,.pdf"
(Для обратной совместимости acceptedMimeTypes
будут работать до следующего основного выпуска)
спасибо enyo, это сработало …. удивительно … просто вставьте эту строку в dropjone.js->
uploadMultiple: true, (upload multiple files) maxFilesize: 1, (1 mb is here the max file upload size constraint) acceptedFiles: ".jpeg,.jpg,.png,.gif",
http://www.dropzonejs.com/#config-acceptedFiles
По умолчанию реализация accept проверяет тип или расширение mime файла на этот список. Это список разделенных запятыми типов mime или расширений файлов. Например:
'image/*,application/pdf,.psd'
Если щелкнуть Dropzone, этот параметр будет использоваться как параметр accept на входе скрытого файла.
var myDropzone = new Dropzone('div#profile_pictures',{ acceptedFiles: "image/*"; /*is this correct?*/ init: function(){ this.on("success", function(file, data) { /*..*/ }); } })