我目前正在使用 Kendo UI 使用 MVC3 和 Razor 以及 Entity Framework 将文件上传到数据库。我让它在我网站的几个区域运行良好,除非我需要将它限制为只允许单个上传。我将 multiple 设置为 false,我需要禁止多选,但仍然允许用户多次单击选择按钮来添加文件,这违反了数据库中此字段的要求。
我尝试了一些我认为在他们网站上找到的建议,但他们指的是当前请求中发送的当前选定项目,而不是整个上传列表(见下图)。
<script type="text/javascript">
function singleFile(e) {
var files = e.files;
if (e.files.length > 1) {
alert('Only one file may be uploaded, cancelling operation...');
e.preventDefault();
}
}
</script>
@(Html.Kendo().Upload()
.Name("resumeAttachments")
.Multiple(false)
.Async(async => async
.Save("ResumeSave", "File")
)
.Events(c => c
.Upload("resumeOnUpload")
)
.Events(c => c
.Success("resumeOnSuccess")
)
.Events(c => c
.Complete("singleFile")
)
)
最佳答案
在收到防止多次上传的要求后,我偶然发现了这个页面。
如果设置正确,“multiple”设置为 FALSE 就可以正常工作。
(虽然您可以使用 Kendo Razor 语法,但请注意,当您查看页面源代码时,.Kendo() 实际上已转换为 .kendoUpload
因此我更喜欢这种javascript 中的语法(在@using 之后):
@using Kendo.Mvc.UI;
<script type="text/javascript">
$(document).ready(function() {
$("#files").kendoUpload({"multiple":false,
async: {
saveUrl: '@Url.Action("Save", "Upload", new { typeOfUploadedFile= @Model.DocName.ToString(), @proposalNo = @Model.ProposalNo.ToString(), area = ""})',
removeUrl: '@Url.Action("Remove", "Upload")',
autoUpload: true
}
});
});
</script>
关于javascript - 如何限制 Kendo UI Web 上传只允许一次上传?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15979935/