当前位置: 首页 > 知识库问答 >
问题:

允许Dropzone js仅上载zip文件

孔棋
2023-03-14
<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>
[HttpPost]
    public async Task<IActionResult> Upload(IFormFile file)
    {
        var uploads = Path.Combine(_environment.ContentRootPath, "Uploads");
        if (file.Length > 0)
        {
            using (var fileStream = new FileStream(Path.Combine(uploads, file.FileName), FileMode.Create))
            {
                await file.CopyToAsync(fileStream);
            }
        }
        return RedirectToAction("Index");
    }

但应用程序仍然允许上传任何MIME类型的文件。哪里有问题?另外,限制maxFiles也不起作用--它允许我上传无限多个文件。

共有1个答案

郭思淼
2023-03-14

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

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

获取文件和done函数作为参数的函数。如果在没有参数的情况下调用done函数,则文件被“接受”并将被处理。如果您传递了错误消息,文件将被拒绝,并且将显示错误消息。如果文件太大或与mime类型不匹配,则不会调用此函数。

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

 类似资料:
  • 我正在用PHP做一个简单的网站,我正在使用DropzoneJS上传文件 我尝试只允许以下扩展: pdf、png、jpg、jpeg、bmp和txt . 有什么帮助吗?抱歉英语不好 这是我的upload.php代码 干杯,先生。

  • 我正在使用我在网上找到的一篇文章中的JavaScript /AngularJS代码摘录。我对它做了一些调整,因为原始帖子在IE 11上不起作用,但除此之外,我正在使用我找到的它。这段代码允许您将Excel文件上传到jQuery数据表并读取。 我缺少一个要求,如果可能的话,我想寻求帮助。该要求是只允许上传Excel文件,没有其他类型的文件应该对用户“可见”。 这是我正在使用的代码: AngularJ

  • 我一直在捕捉非数字时遇到问题。 我试过了,但抓不住。如果我让它捕获非数字,但不让用户再次尝试输入。。。它完全停止了我的代码。 这是我的密码:

  • 问题内容: 如何允许我在iOS 8.3 SDK中用Swift编写的通用应用程序在iPhone上仅支持纵向模式,而在iPad上既支持纵向模式又支持横向模式? 我知道过去这是在AppDelegate中完成的。我该如何在Swift中做到这一点? 问题答案: 您可以以编程方式进行操作,或者更好的是,您可以简单地编辑项目的Info.plist(这应该更实用,因为它是全局设备配置) 只需添加“支持的界面方向(

  • 问题内容: 我正在寻找一种允许用户使用Ajax从我的网站下载文件的方法。我之所以需要这样做是因为文件很大(正常情况下为50兆)。因此,当用户单击下载按钮时,它实际上看起来好像页面没有响应,因为它必须将文件从我的Amazon S3流传输到用户。 因此,我需要通知用户下载正在进行中,甚至可能给他们一个进度条。我找到了以下文章,但我并不热衷于将iFrame注入我的网页。 在此先感谢您的帮助。 问题答案:

  • DropzoneJS 是开源的图片上传组件,提供 drag'n'drop 文件上传与图像预览。 安装 下载独立安装包: <script src="./path/to/dropzone.js"></script> 使用 使用 dropzone 类创建一个表单元素: <form action="/file-upload"      class="dropzone"      id="my-awesome-dropzone"></form>