我试图更改之前创建的Dropzone的acceptedFiles选项。
这就是我设置选项的方式:
$myDropzone.options.acceptedFiles = '.jpg, .png';
这是生成的Dropzone:
var $myDropzone = $("#my-dropzone");
$myDropzone.dropzone({
maxFiles: 100,
maxFilesize: 32,
acceptedFiles: ".jpg"});
产生的错误是:
TypeError:$ myDropzone.options未定义
更新
似乎没有运行任何错误:
$myDropzone.options = { acceptedFiles: '.jpg, .png' };
但是接受新文件类型也没有变化。
这里是游乐场示例:http://codepen.io/anon/pen/GqqLGo
答案 0 :(得分:3)
使用Dropzone的文档中提到的接受回调函数可以正常工作,但它并不限制用户文件资源管理器中显示的文件类型。它仅在用户选择后丢弃文件,如果它没有可接受的文件扩展名。相反,请完成以下步骤。
更改代码中某处隐藏输入的accept属性,以便在初始化dropzone之后,但在用户可以使用dropzone之前触发它。这将限制用户可以选择的文件类型。
$('.dz-hidden-input').attr('accept', '.pdf, .doc, .docx');
var mediaType = 'document';
在用户添加文件后更改acceptedFiles选项,以告知Dropzone可以接受哪些文件类型。从技术上讲,这可以添加到发送文件之前触发的任何Dropzone事件回调中。
$('#dropzone').dropzone({
acceptedFiles: 'image/*',
init: function () {
this.on('addedfile', function (file, xhr, formData) {
if (mediaType == 'document') {
this.options.acceptedFiles = '.pdf, .docx, .doc';
}
});
}
});
答案 1 :(得分:2)
我自己最终使用了这个
$("input").each(function()
{
var type = $(this).attr('type');
if(type == "file")
{
$(this).attr("accept", ".pdf");
}
});
答案 2 :(得分:0)
您无法动态更改属性acceptedFiles。但你可以这样做:
var acceptedTypes = ['jpg','png']
$('#dropzone').dropzone({
url: url,
accept: function(file, done) {
if ($.inArray(file.name.slice(-3), acceptedTypes ) >= 0) {
//accepted file
done();
}
else {
//Unaccepted file revert
this.removeFile(file);
}
}
});
答案 3 :(得分:0)
这对我有用
Dropzone.options.fileupload = {
acceptedFiles: 'image/*,.mp3',
maxFilesize: 100 // MB
};
答案 4 :(得分:-1)
$myDropzone
是一个jQuery-Resultset而不是Dropzone实例。
在Dropzone的网页上,您可以在Version 2.0附近找到此信息:
另一件事情是,Dropzone不再将其实例存储在元素的data属性中。因此,要为元素获取Dropzone,请立即执行此操作:
// DEPRECATED, do not use: $("#my-dropzone").data("dropzone"); // won't work anymore // Do this now: Dropzone.forElement(element); // Providing a raw HTMLElement // or Dropzone.forElement("#my-dropzone"); // Providing a selector string.
如果要访问分配给给定元素的dropzone元素,则需要使用Dropzone.forElement(element);
要访问或更改jQuery结果集中元素的选项,您需要这样做:
Dropzone.forElement($myDropzone.get(0)).options.acceptedFiles = '.jpg, .png';
答案 5 :(得分:-2)
更改所需类型的2°参数:
myDropzone.hiddenFileInput.setAttribute("accept", '.png,.jpg');