在我的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的限制也不起作用-它允许我上传无限数量的文件。
答案 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",
....
};