go to index

Dropzone只允许上传一个文件

read time 2 min read
dropzone 上传

在使用 Dropzone 时,即使设置了 maxFiles: 1uploadMultiple: false,用户在界面上仍然可以选择多个文件(虽然会有错误提示)。为了确保界面也只允许选择一个文件,可以通过事件监听来实现。

解决方法

通过监听 maxfilesexceeded 事件,并在初始化时设置相关配置:

javascript
Dropzone.options.myDropzone = {
    uploadMultiple: false,
    maxFiles: 1,
    init: function() {
        this.on("maxfilesexceeded", function(file) {
            alert("每次仅允许选择一个文件");
            this.removeFile(file);
        });
    }
};

完整示例

为了确保更好的用户体验,可以进一步优化代码,确保用户在选择文件时不会出现混淆:

javascript
Dropzone.options.myDropzone = {
    uploadMultiple: false,
    maxFiles: 1,
    init: function() {
        this.on("addedfile", function(file) {
            if (this.files.length > 1) {
                alert("每次仅允许选择一个文件");
                this.removeFile(this.files[0]);
            }
        });

        this.on("maxfilesexceeded", function(file) {
            alert("每次仅允许选择一个文件");
            this.removeFile(file);
        });
    }
};