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

时间:2015-08-20 10:54:41

标签: javascript jquery internet-explorer internet-explorer-8 fileapi

我正在尝试使用FileAPI库在IE7和IE8浏览器中上传文件,但遗憾的是它无法正常工作。它在所有其他浏览器中工作,但在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:对象不支持此操作

文件:FileAPI.min.js,行:2,列:11608

我的FileAPI版本是2.0.11

非常感谢任何帮助。

谢谢。

1 个答案:

答案 0 :(得分:0)

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