POST有效负载中的冗余字符

时间:2011-10-02 17:38:26

标签: javascript http google-chrome

我正在构建一个Chrome扩展程序,我在其中模拟表单POST以将图像发送到服务器。我设法上传了文件,但其内容却被扭曲了。通过比较上传的字节数组和原始的字节数组,可以观察到每个字节> 127被转换为2个其他字节。

  

例如:137 - > 194 137

   233 -> 195 169 

Chrome开发者工具中的POST有效负载表明在发送请求之前添加了冗余字节。

  

我的原始文件内容:

   ‰PNG ....
     

内容记录在网络负载中

   ‰PNG ....

不应该在内容之前存在的字符。你知道如何避免这个问题吗?以下是我用来测试的代码:

        var fr = new FileReader();
        fr.onloadend = function(evt){

            if(evt.target.readyState == FileReader.DONE){
                                    //str - image content
                var str = "";
                var byteStr = "";
                var dv = new DataView(evt.target.result);
                console.log("data length = " + evt.target.result.byteLength);
                for(var i = 0 ; i < evt.target.result.byteLength; i++){
                  var b1 = dv.getUint8(i);
                  str += String.fromCharCode(b1);
                  byteStr += b1 + " ";

                }

                console.log(str);
                console.log(byteStr);
                                 //use jQuery.ajax to post image to server
                attachImage(str, file.name,file.type);
            }
        }

        fr.readAsArrayBuffer(file);

提前谢谢你。

1 个答案:

答案 0 :(得分:0)

感谢朋友指点我这篇文章:Sending images from Canvas elements using Ajax and PHP $_FILES

我的问题现在可以解决了。该方法使用xhr sendasbinary来避免编码问题。

此致