2013-04-11 69 views
0

我正在使用dropzonejs进行简单的文件上传。我目前有几个问题。dropzonejs文件类型

我不知道如何限制类型的文件上传。我在我的PHP后端有文件验证,但文件似乎上传(他们得到一个复选标记),即使他们没有通过这些过滤器。但这不是一个真正的问题。我想要的唯一类型的额外JavaScript过滤是文件类型。目前你可以选择任何类型的文件,但是我想限制在一个上传器中使用图像文件,而在另一个上传器中使用pdf/word/excell。这可以在插件本身完成,或者如何在其他地方使用js完成?

该插件不需要jQuery,但我在其他地方使用jQuery,所以它可以用于解决方案。

回答

2

从悬浮窗文件(http://www.dropzonejs.com/)还有就是接受选项 -

Dropzone.options.myAwesomeDropzone = { 
    paramName: "file", // The name that will be used to transfer the file 
    maxFilesize: 2, // MB 
    accept: function(file, done) { 
    if (file.name == "justinbieber.jpg") { 
     done("Naha, you don't."); 
    } 
    else { done(); } 
    } 
}; 

所有你需要做的就是修改你的目的,如接受带有特定扩展名的文件。

+0

哦,我看过那段代码,但并没有真正想到它。我可以使用file.type来获取文件类型。然而问题是,它选择文件时会运行该代码。 done()在所有我成功上传之后也做同样的事情。所以说你选择了20个正确的文件,然后是一个错误的文件,它完成了done()函数。在我的情况,完成()函数做一个window.location.reload(); ...继承人完整的代码:http://pastebin.com/AHxC9NWy – jdepypere 2013-04-11 12:50:44

+1

经过一番摸索,我设法解决它。大致完成(“错误”)触发了“完成”事件。所以在整个活动中,我有一个新的if语句。由于我不希望文件被自动上传,但只有在点击一个按钮后,我才查看是否点击了该按钮。以下是最终的代码:http://pastebin.com/yUbkRqTA – jdepypere 2013-04-11 15:44:35

+0

非常棒!很高兴你明白了。 – 2013-04-11 16:00:23