我需要不同类型的文件去不同的目的地。
如何重写Dropzone.prototype.processQueue
或Dropzone.prototype.processFiles
以发送到不同的目的地。
我不确定是否需要进行异步解决方案来交换this.options.url
进出。
答案 0 :(得分:1)
虽然@ Inkdot的答案在技术上是正确的,但这不是最好的方法,因为这可能会导致竞争条件。
最好的方法是使用函数作为url
参数:
Dropzone.options.url = function(files) {
let url = 'upload/path';
if (/(jpg|jpeg)$/.test(files[0])) url = 'path/to/jpeg';
return url;
}
此功能将在uploadFiles()
功能中调用,这是实际上传文件的步骤。
有关详细信息,请参阅the documentation on the url
parameter。
答案 1 :(得分:0)
我相信你可以通过使用' Dropzone.options'来实现这一目标。宾语。 编辑:这里是文档http://www.dropzonejs.com/#configuration
// "myAwesomeDropzone" is the camelized version of the HTML element's ID
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 includes .jpg set the upload url to the correct jpg folder
if (file.name.includes('.jpg')) {
url: 'path/to/jpg/files';
done();
}
// same as above but for .png files, you could also use a switch statement
if (file.name.includes('.png')) {
url: 'path/to/png/files';
done();
}
}
};