如何将IE8中的文件上传到服务器

问题描述

我必须在IE8中以企业模式上传

在IE9或更高版本中,我可以做到

<input type="file" accept="jpg" id="inputer" onchange="uploadImage(event)">

function uploadImage (event){
var fileList = event.target.files;
    console.log(fileList);
}

但是在IE8中怎么做,因为在IE8中event.target == undefined?

它是经过研究的here

我必须将该文件上传到服务器

解决方法

我们做了类似的功能

var FileReader = (function () { 

   function YourOwnEncoderStringTOArray(str){//your code}
   
   function FileReader(){

        var reader = new ActiveXObject("Scripting.FileSystemObject");

        this.getFileSize = function(filename){
        var file = reader.getFile(filename);
        return file && file.size;
    };

    this.getBytes = function (filename){
        var file = reader.getFile(filename);
        var size = file.size;
        var stream = file.OpernAsTextStream(1,0);
        var str = stream.Read(size);
        stream.Close();
        return YourOwnEncoderStringTOArray(str);
    };

}
return FileReader;
})();

您可以像这样从js中调用它

window.YourFunc = function(event){


 var filename = $('myElementId').val();
    var fileReader = new FileReader();
    var fileSize;
    try{
      fileSize = fileReader.getFileSize(filename);
    }catch(e){
    // your code to explain why fileReader do not answer
    }
}