none
有人用ajax post过base64数据吗 RRS feed

  • 问题

  • var sinfo = b64;
    
        sinfo = sinfo.replace(/\+/g, "%2B");
        sinfo = sinfo.replace(/\&/g, "%26");
    
        var xmlhttp = null;
        var url = "../handler/B64toImg.ashx";
        if (window.ActiveXObject) {
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        } else {
            xmlhttp = new XMLHttpRequest();
        }
        xmlhttp.open("post", url, true);
        xmlhttp.setRequestHeader("Content-Length", sinfo.length);
        xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        xmlhttp.onreadystatechange = function () {
            if (xmlhttp.readystate == 4 && xmlhttp.status == 200) {
                var ms = xmlhttp.responseText;
                alert(ms);
    
                
    
            }
        }
        xmlhttp.send(sinfo);

        public void ProcessRequest (HttpContext context) {
      
            context.Response.ContentType = "application/x-www-form-urlencoded";
    
    
            
            string putout = context.Request.Form[0];
    
            putout = putout.Replace("\r\n", "");
    
    }

    链接符号 +和&的处理我都做了,还有别的吗?

    context.Request.Form[0];

    我调试 在即时窗口输入context.Request.Form能看到传过来的base64数据context.Request.Form.count为“1”

    context.Request.Form[0]却为“”

    那base64是图片数据,我要post到服务器保存成文件,有没人做类似的?

    2012年2月15日 2:57

答案

  •     //sinfo = sinfo.replace(/\+/g, "%2B");
        //sinfo = sinfo.replace(/\&/g, "%26");
        sinfo = encodeURIComponent(sinfo);
    解决了.还是链接符号没处理好.丢失数据...
    • 已标记为答案 van_w1y 2012年2月16日 6:28
    2012年2月16日 6:28

全部回复

  •     //sinfo = sinfo.replace(/\+/g, "%2B");
        //sinfo = sinfo.replace(/\&/g, "%26");
        sinfo = encodeURIComponent(sinfo);
    解决了.还是链接符号没处理好.丢失数据...
    • 已标记为答案 van_w1y 2012年2月16日 6:28
    2012年2月16日 6:28
  • 我最近也在做这个,一直就是因为这个编码问题,数据丢失保存图片不成功,看到你这个后我才恍然大悟,感谢
    2017年4月17日 9:11