dropzone.js изображение загружено принято MimeTypes
Я использую плагин 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
?
Спасибо
6 ответов
Вы можете добавить больше расширений к вашему if
, вот так:
if (file.type != "image/jpeg" && file.type != "image/png") {
Это проверит, отличается ли тип файла от ВСЕХ указанных вами типов. Чтобы файл прошел проверку, он должен отличаться от image/jpeg и image/png
Обновить
Я бы посоветовал взглянуть на ответ Энё, так как он является автором Dropzone.
Я автор Dropzone.
Вы должны использовать acceptedMimeTypes
acceptedFiles
, Это ведет себя точно так же, как input
элемента accept
имущество. Таким образом, даже запасной вариант будет работать правильно.
действительный acceptedFiles
свойства могут выглядеть так:
audio/*
image/*
image/jpeg,image/png
- так далее...
РЕДАКТИРОВАТЬ: в последних версиях Dropzone это свойство называется acceptedFiles
и это позволяет вам также определять расширения. Так что это будет работать:
"audio/*,image/*,.psd,.pdf"
(Для обратной совместимости acceptedMimeTypes
будет работать до следующего основного релиза)
Спасибо, это сработало.... круто... просто вставьте эту строку в dropjone.js->
uploadMultiple: true, (upload multiple files)
maxFilesize: 1, (1 mb is here the max file upload size constraint)
acceptedFiles: ".jpeg,.jpg,.png,.gif",
Реализация по умолчанию команды 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) {
/*..*/
});
}
})
var dz = $("#FileUpload").dropzone({acceptedFiles: ".jpeg"})[0];
В случае, если кому-то интересно (я не могу комментировать пост Enyo): у меня были проблемы с применением параметров Dropzone, и после расследования я заметил, что версия jQuery jquery-3.2.1.min.js, которую я использовал был причиной его неисправности