在IE7和IE8中使用ajax上传文件的问题

Issues in Uploading File using ajax in IE7 and IE8

本文关键字:文件 问题 ajax IE7 IE8      更新时间:2023-09-26

我试图在IE7和IE8浏览器中使用FileAPI库上传文件,但不幸的是它不起作用。它可以在所有其他浏览器中工作,但不能在IE7, IE8中工作,这是我的业务要求,使它在IE7, IE8中也能工作。这是我的js代码

jQuery(function ($){
    $(document)
        .on('click', '.imageLabel', function (evt){
            imageUploadId = $(this).attr("id").split("_")[1];
            previewImage = document.getElementById('previewHolderDiv_' + imageUploadId);
            $("#imageError_" + imageUploadId).html("");
            errorMessageUl = document.getElementById('imageError_' + imageUploadId);
            removeImageIcon = document.getElementById('removeImage_' + imageUploadId);
        })

        var form = document.forms.vehicleDocumentForm;
        var input = form.vehicleImage;

        var uploadOpts = {
            url: '/save-vehicle-document',
            data: {},
            name: 'vehicleImage',
            activeClassName: 'upload_active' 
        };

        var _onSelectFile = function (evt/**Event*/){
            var file = FileAPI.getFiles(evt)[0];
            if( file ){
                _uploadFile(file, imageUploadId);
            }
        };
        var _uploadFile = function (file){
            uploadOpts.data = {"imageId" : imageUploadId};            
            var opts = FileAPI.extend(uploadOpts, {
                files: {},

                upload: function (){
                    form.className += ' '+uploadOpts.activeClassName;
                },

                complete: function (err, xhr){
                    //enableSellYourButtons();
                    form.className = (' '+form.className+' ').replace(' '+uploadOpts.activeClassName+' ', ' ');
                    var response = JSON.parse(xhr.responseText);
                    if( response.result == "fail"){
                        previewImage.html = "";
                        $("#imageError_" + imageUploadId).html("<li>" + response.message + "</li>");
                    } else {
                        $("#imageError_" + imageUploadId).html("");
                        $("#vehicleImageName_" + imageUploadId).attr("value", response.message);
                    }
                }
            });

            opts.files[opts.name] = file;

            FileAPI.upload(opts);
        };

        FileAPI.event.on(input, "change", _onSelectFile);
}); // ready

我得到一个错误SCRIPT445:对象不支持此操作

File: FileAPI.min.js, Line: 2, Column: 11608

我的FileAPI版本是2.0.11

任何帮助都将是非常感激的。

谢谢。

根据caniuse, FileApi与IE7/8不兼容