1
我正在使用Dropzone.js上傳一個Excel文件,其中的內容然後被導入到我的數據庫中的表中。
我目前在我的c#中有一些方法,它檢查正在上傳的文件,以確保它是有效的(檢查標題行)並且可以導入到數據庫。
驗證工作正常,理論上DropZone.js也一樣。但是,無論文件是否通過驗證並導入,DropZone將始終顯示「勾號/檢查」標記 - 以通知用戶該操作已成功完成。DropZone.js確定何時成功上傳
這裏是我的懸浮窗:
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" });
}
因此上傳方法返回一個JSON對象。我希望DropZone根據JSON的值確定保存/導入是否成功。這可能嗎?
非常感謝
建議:當上傳失敗時,讓您的服務器返回除成功HTTP 200響應之外的其他內容。如果Dropzone收到來自服務器的4xx或5xx響應,它將把上傳視爲失敗。 – jszobody
@jszobody這工作完美!如果驗證失敗,現在返回500狀態。非常感謝! – MalvEarp
很高興幫助!我繼續發佈並將其作爲答案發布,以便您可以接受。 – jszobody