允许Dropzone js仅上传zip文件

时间:2018-08-20 14:11:04

标签: asp.net-mvc asp.net-core dropzone.js

在我的mvc网络核心应用程序中,我需要实现拖放文件上传器。我找到了Dropzone js,并希望将其用于我的目的。但是无法配置,我需要允许它上传仅zip文件。 我的代码:

  this._call.upload(data)  // (Calling a post function which will be present in service file)
  .subscribe(r => {
     this.$modal.showModal(SuccModalData,undefined,r);
  });
  }

我当然也有控制器:

<div class="row">
    <div class="col-md-9">
        <div id="dropzone">
            <form action="/Home/Upload" class="dropzone needsclick dz-clickable" id="uploader">
                <div class="dz-message needsclick">
                    Drop files here or click to upload.<br>
                </div>
            </form>
        </div>
    </div>
</div>


<script>
    $(document).ready(function () {

        Dropzone.options.uploader = {
            paramName: "file",
            maxFilesize: 256,
            acceptedFiles: "application/zip,application/octet-stream,application/x-zip-compressed,multipart/x-zip,.zip",
            maxFiles: 1
        };

});
</script>

但是,应用程序仍允许上传具有任何MIME类型的任何文件。哪里有问题? 同样,对maxFiles的限制也不起作用-它允许我上传无限数量的文件。

2 个答案:

答案 0 :(得分:0)

根据文档(https://www.dropzonejs.com/#configuration),您可以这样做:

Dropzone.options.myAwesomeDropzone = {
  accept: function(file, done) {
    if (file.name.endsWith !== ".zip") {
      done("Naha, you don't.");
    }
    else { done(); }
  }
};
  

获取文件和完成函数作为参数的函数。如果   完成函数不带参数调用,文件被“接受”,并且   将被处理。如果传递错误消息,则文件被拒绝,   并显示错误信息。此功能将不会   如果文件太大或与mime类型不匹配,则调用此方法。

编辑: 这里是一个小提琴来演示它:http://jsfiddle.net/behyzjng/15/

答案 1 :(得分:0)

您可以使用dropzone.js名称接受文件的选项。

Dropzone.options.myAwesomeDropzone = {
 ....
acceptedFiles: ".zip",
....
};