解决方案 »

  1.   

    一种是用substr 来截取中间部分
     var asd123 = '0xFFD8csdn0xFFD9';
     var ss = asd123.substr(6,  asd123.lastIndexOf("0xFFD9")-6); //0xFFD8是6位  0xFFD9是6位,
    二种是利用正则表达式来取
    大体/0xFFD8[^<>]*?0xFFD9/gi;这样。我写的不对。
      

  2.   

    据我所知,如果你这个 req.request 请求是一个http请求的话,那根本不可能返回二进制,因为http是文本协议,返回的内容一定是字符的集合。
      

  3.   


    function getCgiPicture(url) {
            var outPut = document.getElementById("output");
     
            var req = new digestAuthRequest('GET', url, 'admin', 'admin');
     
            req.request(function(data) {
                // success callback
     
                //下面两行是我要做的功课,data是一个流,流里边包括jpg图片的流
                //了解了一下jpg的编码格式,是以0xFFD8开始,以0xFFD9结束
                //所以我需要把data这个流,做一个截取,取里边0xFFD8~0xFFD9之间的内容,最后再做BASE64
                var img =  match(/0xFFD8(.*)0xFFD9/)[1];
                outPut.innerHTML = "<img src='data:image/jpg;base64," + Base64.encode(img) + "' />";
            },function(errorCode) {
                // error callback
            });
      

  4.   

    var img = data.match(/0xFFD8(.*)0xFFD9/)[1];