<tfoot id='LAcjn'></tfoot>
    <bdo id='LAcjn'></bdo><ul id='LAcjn'></ul>

    1. <i id='LAcjn'><tr id='LAcjn'><dt id='LAcjn'><q id='LAcjn'><span id='LAcjn'><b id='LAcjn'><form id='LAcjn'><ins id='LAcjn'></ins><ul id='LAcjn'></ul><sub id='LAcjn'></sub></form><legend id='LAcjn'></legend><bdo id='LAcjn'><pre id='LAcjn'><center id='LAcjn'></center></pre></bdo></b><th id='LAcjn'></th></span></q></dt></tr></i><div id='LAcjn'><tfoot id='LAcjn'></tfoot><dl id='LAcjn'><fieldset id='LAcjn'></fieldset></dl></div>
    2. <legend id='LAcjn'><style id='LAcjn'><dir id='LAcjn'><q id='LAcjn'></q></dir></style></legend>
    3. <small id='LAcjn'></small><noframes id='LAcjn'>

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

        时间:2023-05-16

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

            <bdo id='Sv5ZJ'></bdo><ul id='Sv5ZJ'></ul>

                <tbody id='Sv5ZJ'></tbody>

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

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

                  问题描述

                  限时送ChatGPT账号..


                  我正在尝试将 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 字符串并在服务器中将其解码为文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

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

                  相关文章

                2. <legend id='vtLc8'><style id='vtLc8'><dir id='vtLc8'><q id='vtLc8'></q></dir></style></legend>

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

                  1. <small id='vtLc8'></small><noframes id='vtLc8'>

                      <bdo id='vtLc8'></bdo><ul id='vtLc8'></ul>
                  2. <tfoot id='vtLc8'></tfoot>