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

How to upload file in IE8 to server

提问人:Dred 提问时间:9/16/2020 更新时间:9/30/2020 访问量:117

问:

我必须在企业模式下在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?

它是在这里研究的

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

javascript 互联网浏览器-8

评论

0赞 GetSet 9/16/2020
你研究过这个吗?超越 SO
0赞 Dred 9/16/2020
这。。。什么?)
0赞 GetSet 9/16/2020
好的,为什么需要 IE8 支持?
0赞 Dred 9/16/2020
因为它是传统和企业解决方案。
0赞 GetSet 9/16/2020
那么你有没有研究过关键词“现代支持IE8”呢?也许存在一个图书馆。只是说,你确实可以访问互联网搜索引擎

答:

0赞 Dred 9/30/2020 #1

我们做了一些功能,比如

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
    }
}