不同浏览器获取图片base64字符串

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hsl_1990_08_15/article/details/73351296

在上传图片后进行预览的时候,在Chrome,Foxfire,360等主流浏览器中都可以使用FileReader对象来获取base64来预览图片,但是在IE10以下的版本就爱莫能助了但是有解决办法: 
 

//IE9以下不支持FileReader对象,如果是IE9以下的浏览器,用下面这种方式进行预览
var ingSrc="";
var b_version = navigator.appVersion;
var version = b_version.split(";");
if(window.navigator.userAgent.indexOf("MSIE")>=1){
   if (version.length > 1) {
       var trim_Version = parseInt(version[1].replace(/[ ]/g, "").replace(/MSIE/g, ""));
       if (trim_Version < 10) {
          var x= new ActiveXObject("Msxml2.XMLHTTP.6.0");
          x.onreadystatechange=function() {
              if (x.readyState < 4)return;
              var xml_dom = new ActiveXObject("MSXML2.DOMDocument");
              var tmpNode = xml_dom.createElement("tmpNode");
              tmpNode.dataType = "bin.base64";
              tmpNode.nodeTypedValue = x.responseBody;
              var base64string = tmpNode.text.replace(/\n/g, "");
              imgSrc = "data:image/jpeg;base64,"+base64string;
           };
           x.open("get",this.value,true);
           x.send("");
           return;
      }
   }
}
//如果是其他浏览器使用FileReader对象获取
var reader = new FileReader();
reader.onload = function(e) {
    imgSrc = e.target.result;
};
reader.readAsDataURL(this.files[0]);

传到后台的base64字符串解析方法


BASE64Decoder decoder = new BASE64Decoder();
        InputStream inputStream = null;
        try {
            //base64字符串进行解密
            byte[] b = decoder.decodeBuffer(base64);
            // 处理数据
            for (int i = 0; i < b.length; ++i) {
                if (b[i] < 0) {
                    b[i] += 256;
                }
            }
            inputStream = new ByteArrayInputStream(b);
        } catch (IOException e) {
            e.printStackTrace();
            return false;
        } finally {
            if (inputStream != null) {
                try {
                    inputStream.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }


把输入流输出到文件就OK了




扫描二维码关注公众号,回复: 3179000 查看本文章

猜你喜欢

转载自blog.csdn.net/hsl_1990_08_15/article/details/73351296