<legend id='1o29s'><style id='1o29s'><dir id='1o29s'><q id='1o29s'></q></dir></style></legend>
  • <i id='1o29s'><tr id='1o29s'><dt id='1o29s'><q id='1o29s'><span id='1o29s'><b id='1o29s'><form id='1o29s'><ins id='1o29s'></ins><ul id='1o29s'></ul><sub id='1o29s'></sub></form><legend id='1o29s'></legend><bdo id='1o29s'><pre id='1o29s'><center id='1o29s'></center></pre></bdo></b><th id='1o29s'></th></span></q></dt></tr></i><div id='1o29s'><tfoot id='1o29s'></tfoot><dl id='1o29s'><fieldset id='1o29s'></fieldset></dl></div>

    1. <tfoot id='1o29s'></tfoot>

      <small id='1o29s'></small><noframes id='1o29s'>

      • <bdo id='1o29s'></bdo><ul id='1o29s'></ul>

        xhr 发送 base64 字符串并在服务器中将其解码为文

        时间:2023-10-14

        <small id='PTVch'></small><noframes id='PTVch'>

        <tfoot id='PTVch'></tfoot>
          <i id='PTVch'><tr id='PTVch'><dt id='PTVch'><q id='PTVch'><span id='PTVch'><b id='PTVch'><form id='PTVch'><ins id='PTVch'></ins><ul id='PTVch'></ul><sub id='PTVch'></sub></form><legend id='PTVch'></legend><bdo id='PTVch'><pre id='PTVch'><center id='PTVch'></center></pre></bdo></b><th id='PTVch'></th></span></q></dt></tr></i><div id='PTVch'><tfoot id='PTVch'></tfoot><dl id='PTVch'><fieldset id='PTVch'></fieldset></dl></div>

          1. <legend id='PTVch'><style id='PTVch'><dir id='PTVch'><q id='PTVch'></q></dir></style></legend>

                  <tbody id='PTVch'></tbody>
                • <bdo id='PTVch'></bdo><ul id='PTVch'></ul>
                  本文介绍了xhr 发送 base64 字符串并在服务器中将其解码为文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                  问题描述


                  我正在尝试将 base64 编码的 img 发送到服务器,javascript 看起来像


                  I am trying to to send a base64 encoded img to server,the javascript looks like

                  var xhr=new XMLHttpRequest()
                  var reader=new FileReader()
                  reader.onloadend=function(e){
                  xhr.onload=function(e){
                  alert(xhr.responseText)
                  }
                  xhr.open("POST","upload.php");
                          xhr.setRequestHeader("Cache-Control", "no-cache");
                          xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
                          //xhr.setRequestHeader("X-File-Name", file.name);
                          //xhr.setRequestHeader("X-File-Type",file.type)
                  xhr.send(e.target.result)
                  }
                  reader.readAsDataURL(file)
                  },false)
                  


                  在 php 中,如下所示:


                  In php,looks like this:

                  echo "some response Text";
                  $postdata = file_get_contents("php://input");
                  file_put_contents('MyFile.jpg', base64_decode($postdata));
                  

                  最后,服务器得到一个文件正好与发送的文件一样大,但是无法打开
                  有人有一些想法吗?非常感谢!

                  And,eventually,the server gets a file exactly as big as the sent file,However,it can't be opened
                  Some one get some ideas?Thanks a lot!

                  推荐答案

                  reader.readAsDataURL(file)
                  

                  数据 URL 与文件的 base64 版本不同.你会得到额外的垃圾.它看起来像这样:

                  A data URL is NOT the same as a base64 version of the file. You get extra garbage in it. It looks like this:

                  data:[<MIME-type>][;charset=<encoding>][;base64],<data>
                  

                  参见维基百科.

                  尝试对其做一个简单的正则表达式:

                  Try doing a simple regex on it:

                  var data = dataURL.match(/,(.*)$/)[1];
                  

                  或者,在您的代码中,

                  xhr.send(e.target.result.match(/,(.*)$/)[1]);
                  

                  这篇关于xhr 发送 base64 字符串并在服务器中将其解码为文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                  上一篇:xmlhttprequest 状态 302 的问题 下一篇:带有标头的基本身份验证 - Javascript XMLHttpRequest

                  相关文章

                  最新文章

                • <small id='xOVxy'></small><noframes id='xOVxy'>

                    <bdo id='xOVxy'></bdo><ul id='xOVxy'></ul>
                • <tfoot id='xOVxy'></tfoot>
                • <legend id='xOVxy'><style id='xOVxy'><dir id='xOVxy'><q id='xOVxy'></q></dir></style></legend>
                  <i id='xOVxy'><tr id='xOVxy'><dt id='xOVxy'><q id='xOVxy'><span id='xOVxy'><b id='xOVxy'><form id='xOVxy'><ins id='xOVxy'></ins><ul id='xOVxy'></ul><sub id='xOVxy'></sub></form><legend id='xOVxy'></legend><bdo id='xOVxy'><pre id='xOVxy'><center id='xOVxy'></center></pre></bdo></b><th id='xOVxy'></th></span></q></dt></tr></i><div id='xOVxy'><tfoot id='xOVxy'></tfoot><dl id='xOVxy'><fieldset id='xOVxy'></fieldset></dl></div>