【发布时间】:2022-02-23 01:22:01
【问题描述】:
我正在使用 Dropzone 在表单上上传图片。我正在重写“addFile”函数来执行一些自定义功能来在本地存储上传的图像。所以,我可以在表单提交时获取这些图像。我正在使用以下代码:
$dropzone.dropzone({
url: "/file-upload",
autoProcessQueue: false,
uploadMultiple: true,
parallelUploads: 6,
maxFiles: 6,
maxFilesize: 2.5,
addRemoveLinks: true,
init: function () {
this.on("addedfile", function (file) {
$("#FileUploadErrorMessage").val("");
var uniqueId = document.getElementById("UniqueId").value;
setTimeout(function () {
var model = {
FileName: uniqueId + "-" + file.name,
Base64Url: file.dataURL
};
var defaults = {};
var extendedModel = $.extend(defaults, model);
$.ajax({
// Send '**model**' variable to controller action to store file in
// local directory
});
}, 3000);
});
...
我不得不在我的 AJAX 函数周围添加 3 秒超时,因为在 dropzone 完成将文件添加到插件之前,'file' 变量(发送到函数)是未定义的.但是,我需要找到一种更好的方法来执行此操作,因此我不必设置 3 秒超时来等待“file”变量,因为在某些情况下,上传图像到插件并点击此函数超过 3 秒,并导致在点击 AJAX 函数时未定义“file”变量。
谁能帮忙?
【问题讨论】:
标签: c# ajax model-view-controller dropzone.js