[转]IE下对文件(图片)进行base64转换
生活随笔
收集整理的這篇文章主要介紹了
[转]IE下对文件(图片)进行base64转换
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
原文地址:http://www.blogjava.net/emu/archive/2011/08/28/357431.html @import url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);?在編寫某個hta的用戶環境分析工具的時候,經常發現用戶被一些莫名其妙的代理服務器所劫持以后,一個正常的文本請求卻下載到了一個圖片。這種log看多了以后sidney就開始投訴了,想搜集到用戶那里收到的到底是個什么圖片。
這個圖片用戶那里雖然可以看,但是要生成到log里面就要另外保存一個文件,如果要上傳的話還要開發相應的圖片上傳功能,這就麻煩了。 當然還可以用eml或者mht的形式吧圖片打包在log里面,這樣圖片就會以base64形式編碼進去嵌在log的文本里面了。但是hta記得似乎控制save命令的時候不能制定mht格式(沒試過),eml要依賴客戶端有郵件客戶端,還要能通過js操控,更麻煩。 因此最簡單的看起來就是zishun寫的《利用HTML5對文件進行base64轉換》方案了,只要把圖片轉成DATAURI,就可以很容易的把圖片信息嵌入到頁面里面并在現代瀏覽器里面展現。這個方案唯一的問題是,僅限非IE。 還好IE其實也有類似的功能,并且效率更高,唯一的問題是要依賴activex,不過這再hta里面就不算問題了。 IE下的圖片文件(圖片)base64編碼代碼是這樣的: <SCRIPT?LANGUAGE="JavaScript">
<!--
varx=newActiveXObject("Msxml2.XMLHTTP.6.0");
x.onreadystatechange=function(){
????if(x.readyState<4)return;
????varxml_dom?=newActiveXObject("MSXML2.DOMDocument");?
????vartmpNode?=xml_dom.createElement("tmpNode");?
????tmpNode.dataType?="bin.base64";?
????tmpNode.nodeTypedValue?=x.responseBody;?
????base64string=tmpNode.text.replace(/\n/g,"");
????document.write("<img?src=\"data:image/bmp;base64,"+base64string+"\">")
}
x.open("get","http://www.blogjava.net/images/blogjava_net/emu/1359/o_emu120.jpg",true);
x.send("");
//-->
</SCRIPT> posted on 2011-08-28 12:11?emu?閱讀(2510)?評論(2)??編輯??收藏
flash實現的鏈接地址:http://drmcmm.baidu.com/media/id=n1DsP1c1nWf&gp=401&time=nHnkPjc1PWfknf.swf
??回復??更多評論?
??
#?re: IE下對文件(圖片)進行base64轉換?2011-08-30 00:40?emu 把stream用fso寫到文件系統唄。@Meteoric
其實不一定要用hta的,IE下htm都支持activeX,只是可能要用戶確認權限。我這里是碰巧再維護個hta而已。??回復??更多評論?
??
這個圖片用戶那里雖然可以看,但是要生成到log里面就要另外保存一個文件,如果要上傳的話還要開發相應的圖片上傳功能,這就麻煩了。 當然還可以用eml或者mht的形式吧圖片打包在log里面,這樣圖片就會以base64形式編碼進去嵌在log的文本里面了。但是hta記得似乎控制save命令的時候不能制定mht格式(沒試過),eml要依賴客戶端有郵件客戶端,還要能通過js操控,更麻煩。 因此最簡單的看起來就是zishun寫的《利用HTML5對文件進行base64轉換》方案了,只要把圖片轉成DATAURI,就可以很容易的把圖片信息嵌入到頁面里面并在現代瀏覽器里面展現。這個方案唯一的問題是,僅限非IE。 還好IE其實也有類似的功能,并且效率更高,唯一的問題是要依賴activex,不過這再hta里面就不算問題了。 IE下的圖片文件(圖片)base64編碼代碼是這樣的: <SCRIPT?LANGUAGE="JavaScript">
<!--
varx=newActiveXObject("Msxml2.XMLHTTP.6.0");
x.onreadystatechange=function(){
????if(x.readyState<4)return;
????varxml_dom?=newActiveXObject("MSXML2.DOMDocument");?
????vartmpNode?=xml_dom.createElement("tmpNode");?
????tmpNode.dataType?="bin.base64";?
????tmpNode.nodeTypedValue?=x.responseBody;?
????base64string=tmpNode.text.replace(/\n/g,"");
????document.write("<img?src=\"data:image/bmp;base64,"+base64string+"\">")
}
x.open("get","http://www.blogjava.net/images/blogjava_net/emu/1359/o_emu120.jpg",true);
x.send("");
//-->
</SCRIPT> posted on 2011-08-28 12:11?emu?閱讀(2510)?評論(2)??編輯??收藏
評論
#?re: IE下對文件(圖片)進行base64轉換?2011-08-28 23:59?Meteoric hta果然夠強大,就幾行代碼,我是用flash實現編碼和解碼,不知道使用hta能不能把base64的字符串再轉成圖片呢flash實現的鏈接地址:http://drmcmm.baidu.com/media/id=n1DsP1c1nWf&gp=401&time=nHnkPjc1PWfknf.swf
??回復??更多評論?
??
#?re: IE下對文件(圖片)進行base64轉換?2011-08-30 00:40?emu 把stream用fso寫到文件系統唄。@Meteoric
其實不一定要用hta的,IE下htm都支持activeX,只是可能要用戶確認權限。我這里是碰巧再維護個hta而已。??回復??更多評論?
??
轉載于:https://www.cnblogs.com/seapub/archive/2013/01/04/2844695.html
總結
以上是生活随笔為你收集整理的[转]IE下对文件(图片)进行base64转换的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JChartFree创建饼形图
- 下一篇: dll开发及调用