首页 > 解决方案 > 异步模式下 Kendo UI 上传小部件上的自定义事件

问题描述

我在我的项目中使用 Kendo UI Upload 并且文件以异步方式上传。由于“autoUpload:false”,在javascript中配置了一个上传事件,该事件会在上传按钮单击时为每个文件触发。有没有一种方法可以在实际上传事件之前触发另一个事件,在那里我可以检查用户是否可以上传文件?(或任何自定义逻辑)例如,新事件应该只触发一次,如果逻辑返回 true ,然后调用实际的上传调用(对于每个文件),否则返回 false 并显示错误。

标签: asp.net-mvcasynchronousfile-uploadkendo-ui

解决方案


您可以将自定义逻辑放在上传事件的处理程序中。如果您决定不继续上传,您可以使用 e.preventDefault() 取消它。

这里有一个很好的简单示例:https ://docs.telerik.com/kendo-ui/api/javascript/ui/upload/events/upload 该链接的示例代码如下:

<input type="file" name="files" id="photos" />
<script>
    $("#photos").kendoUpload({
        async: {
            saveUrl: "http://my-app.localhost/save",
            removeUrl: "http://my-app.localhost/remove"
        },
        upload: onUpload
    });

    function onUpload(e) {
        // An array with information about the uploaded files
        var files = e.files;

        // Checks the extension of each file and aborts the upload if it is not .jpg
        $.each(files, function () {
            if (this.extension.toLowerCase() != ".jpg") {
                alert("Only .jpg files can be uploaded")
                e.preventDefault();
            }
        });
    }
</script>

推荐阅读