emu in blogjava

            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            171 隨筆 :: 103 文章 :: 1052 評(píng)論 :: 2 Trackbacks
          @import url(http://www.aygfsteel.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css); 在編寫某個(gè)hta的用戶環(huán)境分析工具的時(shí)候,經(jīng)常發(fā)現(xiàn)用戶被一些莫名其妙的代理服務(wù)器所劫持以后,一個(gè)正常的文本請(qǐng)求卻下載到了一個(gè)圖片。這種log看多了以后sidney就開(kāi)始投訴了,想搜集到用戶那里收到的到底是個(gè)什么圖片。

          這個(gè)圖片用戶那里雖然可以看,但是要生成到log里面就要另外保存一個(gè)文件,如果要上傳的話還要開(kāi)發(fā)相應(yīng)的圖片上傳功能,這就麻煩了。

          當(dāng)然還可以用eml或者mht的形式吧圖片打包在log里面,這樣圖片就會(huì)以base64形式編碼進(jìn)去嵌在log的文本里面了。但是hta記得似乎控制save命令的時(shí)候不能制定mht格式(沒(méi)試過(guò)),eml要依賴客戶端有郵件客戶端,還要能通過(guò)js操控,更麻煩。

          因此最簡(jiǎn)單的看起來(lái)就是zishun寫的《利用HTML5對(duì)文件進(jìn)行base64轉(zhuǎn)換》方案了,只要把圖片轉(zhuǎn)成DATAURI,就可以很容易的把圖片信息嵌入到頁(yè)面里面并在現(xiàn)代瀏覽器里面展現(xiàn)。這個(gè)方案唯一的問(wèn)題是,僅限非IE。

          還好IE其實(shí)也有類似的功能,并且效率更高,唯一的問(wèn)題是要依賴activex,不過(guò)這再hta里面就不算問(wèn)題了。

          IE下的圖片文件(圖片)base64編碼代碼是這樣的:

          <SCRIPT LANGUAGE="JavaScript">
          <!--
          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; 
              base64string
          =tmpNode.text.replace(/\n/g,"");
              document.write(
          "<img src=\"data:image/bmp;base64,"+base64string+"\">")

          }
          x.open(
          "get","http://www.aygfsteel.com/images/blogjava_net/emu/1359/o_emu120.jpg",true);
          x.send(
          "");
          //-->
          </SCRIPT>


          posted on 2011-08-28 12:11 emu 閱讀(13402) 評(píng)論(2)  編輯  收藏

          評(píng)論

          # re: IE下對(duì)文件(圖片)進(jìn)行base64轉(zhuǎn)換 2011-08-28 23:59 Meteoric
          hta果然夠強(qiáng)大,就幾行代碼,我是用flash實(shí)現(xiàn)編碼和解碼,不知道使用hta能不能把base64的字符串再轉(zhuǎn)成圖片呢

          flash實(shí)現(xiàn)的鏈接地址:http://drmcmm.baidu.com/media/id=n1DsP1c1nWf&gp=401&time=nHnkPjc1PWfknf.swf



            回復(fù)  更多評(píng)論
            

          # re: IE下對(duì)文件(圖片)進(jìn)行base64轉(zhuǎn)換 2011-08-30 00:40 emu
          把stream用fso寫到文件系統(tǒng)唄。@Meteoric
          其實(shí)不一定要用hta的,IE下htm都支持activeX,只是可能要用戶確認(rèn)權(quán)限。我這里是碰巧再維護(hù)個(gè)hta而已。  回復(fù)  更多評(píng)論
            


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 二手房| 依安县| 张家港市| 黄大仙区| 田阳县| 栖霞市| 菏泽市| 巴林左旗| 千阳县| 合江县| 历史| 翁源县| 古交市| 饶阳县| 夏津县| 喜德县| 察隅县| 手机| 四子王旗| 建阳市| 烟台市| 遂昌县| 霞浦县| 永嘉县| 建德市| 忻州市| 尉犁县| 会东县| 开封县| 中牟县| 常山县| 时尚| 隆昌县| 锡林郭勒盟| 米泉市| 江北区| 哈尔滨市| 囊谦县| 宁海县| 汉源县| 巨鹿县|