如何删除在 Ajax文件上传上出现无效格式的默认警报

How do I remove the default Alert that comes up with invalid format on AjaxFileUpload?

本文关键字:无效 格式 默认 删除 文件 Ajax 何删除      更新时间:2023-09-26

我有一个AjaxFileUpload控件,我已经使用jquery为错误的文件类型弹出错误。 但是,AjaxFileUpload显然有一个默认的,不太漂亮的警报,当添加不正确的文件类型时会出现。 这会导致显示默认警报,然后显示我的模式。 我无法删除 Allowed文件类型 属性,因为当我这样做时,无论如何都会添加不需要的文件。 有谁知道如何摆脱AjaxFileUpload抛出的默认警报?

<div class="upload-photos-add" id="Q0012_00" runat="server">
    <asp:AjaxFileUpload EnableViewState="false" ID="AjaxFileUpload2" 
        ContextKeys="0012.00" runat="server" AllowedFileTypes="jpg,jpeg,png"  
        OnUploadComplete="AjaxFileUpload_UploadComplete"  
        OnClientUploadComplete="onClientUploadComplete"  
        OnClientUploadCompleteAll="onClientUploadCompleteAll" 
        OnClientUploadStart="onClientUploadStart">
     </asp:AjaxFileUpload>
</div>

处理验证的函数:

    function validateFileSize(input_event) {
        //var valid_file = true;
        var valid_format = true;
        var valid_size = true;
        var element_id = $(input_event).attr('id');
        if(supports_html5_file_upload) {
            var number_of_new_files = document.getElementById(element_id).files.length;
            for (var i = 0; i < number_of_new_files; i++) {
                var current_file = document.getElementById(element_id).files[i];
                var file_name = current_file.name;
                var file_path_array = file_name.split('.');
                var file_ext = file_path_array[file_path_array.length - 1];
                file_ext = file_ext.toLowerCase();
                if(file_ext != 'jpg' && file_ext != 'jpeg' && file_ext != 'png') {
                    //valid_file = false;
                    valid_format = false;
                }
                if(ie7 || ie8 || ie9) {
                    var sizeinbytes = 100;
                } else {
                    var sizeinbytes = current_file.size;
                }
                var fSizeMb = sizeinbytes / 1048576;
                if(fSizeMb > 3) {
                    //valid_file = false;
                    valid_size = false;
                }
            }
        } else {
            var current_file = document.getElementById(element_id);
            var file_name = current_file.value;
            var file_path_array = file_name.split('.');
            var file_ext = file_path_array[file_path_array.length - 1];
            file_ext = file_ext.toLowerCase();
            if(file_ext != 'jpg' && file_ext != 'jpeg' && file_ext != 'png') {
                //valid_file = false;
                valid_format = false;
            }
            if(fileApiSupported) {
                //var sizeinbytes = current_file.size;
                var sizeinbytes = document.getElementById(element_id).files[0].size;
            } else {
                var sizeinbytes = 100;
            }
            var fSizeMb = sizeinbytes / 1048576;
            if(fSizeMb > 3) {
                //valid_file = false;
                valid_size = false;
            }
        }
        if (!valid_size && !valid_format) {
            $("#modal-file-size-format").modal('show');
            document.getElementById(element_id).value = null;
        }
        else if (!valid_format) {
            $("#modal-file-format").modal('show');
            document.getElementById(element_id).value = null;
        }
        else if (!valid_size) {
            $("#modal-file-size").modal('show');
            document.getElementById(element_id).value = null;
        }
        else {
            if(canvasSupported && fileApiSupported) {
                thumbnail_preview.update(document.getElementById(element_id).files, input_event);
            } else {
                thumbnail_title_preview.update(document.getElementById(element_id).value, input_event);
            }
        }
    }

此警报是 AjaxControlToolkit 中内置的功能。 为了摆脱它,我下载了 AjaxControlToolkit 源代码并将警报更改为控制台日志,然后我重新创建了 AjaxControlToolkit.dll并在我的项目中替换了它。

confirmFileIsInvalid: function (fileItem) {
    /// <summary>
    /// Send alert to user that file type is not acceptable. Processor uses 
    /// this method after validation.
    /// </summary>
    /// <param name="fileItem"></param>
    var utils = new Sys.Extended.UI.AjaxFileUpload.Utils();
    console.log(String.format(Sys.Extended.UI.Resources.AjaxFileUpload_WrongFileType,
               utils.getFileName(fileItem.value), fileItem.type));
}

这是即将出现的警报:

<data name="AjaxFileUpload_WrongFileType" xml:space="preserve">
    <value>
       Can't add file '{0}' to upload list. File with type '{1}' is not allowed
    </value>
</data>