【问题标题】:DropZone.js determine when successful uploadDropZone.js 判断何时上传成功
【发布时间】:2016-03-16 12:34:59
【问题描述】:

我正在使用 Dropzone.js 上传一个 Excel 文件,然后将其内容导入到我的数据库中的一个表中。

我目前在我的 c# 中有方法检查正在上传的文件,以确保它有效(检查标题行)并且可以导入数据库。

验证工作正常,理论上 DropZone.js 也是如此。但是,无论文件是否通过验证并被导入,DropZone 都将始终显示“勾选/复选”标记 - 以通知用户操作已成功完成。

这是我的拖放区:

Dropzone.options.forecastDropzone = {
    init: function () {
        thisDropzone = this;
        this.on("success", function (file, Message) {
            console.log(Message.Message)
            toastr.info(Message.Message, {
                timeOut: 0, tapToDismiss: true, preventDuplicates: true
            });
        });
    },
};

HTML:

<form action="/Power/Upload" class="dropzone" id="forecastDropzone"></form>

以及正在调用的“上传”方法:

[HttpPost]
    public ActionResult Upload()
    {
        string filename = "";
        string path = "";
        try
        {
            foreach (string fileName in Request.Files)
            {
                HttpPostedFileBase file = Request.Files[fileName];
                path = AppDomain.CurrentDomain.BaseDirectory + "Uploads/";
                filename = Path.GetFileName(Request.Files[fileName].FileName);
                Request.Files[fileName].SaveAs(Path.Combine(path, filename));
                ValidateExcel(path, filename);
            }
        }               
        catch
        {
            isSavedSuccessfully = false;
        }

        return Json(isSavedSuccessfully == true ? new { Message = "Successfully Saved!" } : new { Message = "Error in saving file" });

    }

所以 Upload 方法返回一个 JSON 对象。我希望 DropZone 根据 JSON 中的值确定保存/导入是否成功。这可能吗?
非常感谢

【问题讨论】:

  • 建议:让您的服务器在上传失败时返回除了成功的HTTP 200 响应之外的其他内容。如果 Dropzone 收到来自服务器的 4xx 或 5xx 响应,Dropzone 会将上传视为失败。
  • @jszobody 这工作得很好!如果验证失败,现在返回 500 状态。非常感谢!
  • 很高兴为您提供帮助!我继续并将其发布为答案,以便您接受。

标签: javascript json asp.net-mvc dropzone.js


【解决方案1】:

我不会尝试解析 JSON 响应并处理错误客户端,而是让您的服务器对此负责。

特别是:当上传失败时,让您的服务器返回除成功的HTTP 200 响应之外的其他内容。如果 DropZone 收到来自服务器的 4xx5xx 响应,则会将上传视为失败。

【讨论】:

    猜你喜欢
    • 2016-08-23
    • 1970-01-01
    • 2015-12-05
    • 2012-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多