文件上传 - 处理IE8 / IE9

时间:2015-11-16 11:23:15

标签: jquery html forms file internet-explorer-8

我正在使用JQuery验证插件。据我所知,我不能在IE8 / IE9上使用FileData。问题是,由于某些我无法控制的原因,我也无法使用像IFrame这样的东西来处理我的文件。

目前,我的submitHandler如下所示

submitHandler: function (form) {
    if( window.FormData === undefined ) {
        alert("UNDEFINED");
    } else {
        formData   = new FormData(),
            params     = $(form).serializeArray(),
            fileOne    = $(form).find('[name="fileOne"]')[0].files,
            fileTwo    = $(form).find('[name="fileTwo"]')[0].files;

        if(fileOne.length != 0) {
            $.each(fileOne, function(i, file) {
                formData.append('fileOne-' + i, file);
            });
        }

        if(fileTwo.length != 0) {
            $.each(fileTwo, function(i, file) {
                formData.append('fileTwo-' + i, file);
            });
        }

        $.each(params, function(i, val) {
            formData.append(val.name, val.value);
        });

        $.ajax({
            type: "POST",
            url: "php/process.php",
            dataType: "json",
            data: formData,
            mimeType: "multipart/form-data",
            contentType: false,
            processData: false
        }).done(function (response) {

            });
        return false;
    }
},

所以,它正常工作,但如果它不支持FormData,那么我现在就提醒Undefined。然而,我需要它做的是将验证保留在其他表单字段上,因为这似乎适用于IE8,但忽略了与上传文件有关的任何内容。那我怎么能让它调用我的IE8 / IE9的PHP脚本?

任何建议表示赞赏。

由于

1 个答案:

答案 0 :(得分:0)

如果FormData对象不存在,则排除文件验证

myNumber = 12.3456

Dim count As Integer = Len(Split(CStr(myNumber), Application.DecimalSeparator)(1))

Debug.Print count // prints '4'