<legend id='rxjoR'><style id='rxjoR'><dir id='rxjoR'><q id='rxjoR'></q></dir></style></legend>

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

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

        将 HTML5 Canvas 转换为要上传的文件?

        时间:2023-06-20
        <legend id='qpnvK'><style id='qpnvK'><dir id='qpnvK'><q id='qpnvK'></q></dir></style></legend>
        <i id='qpnvK'><tr id='qpnvK'><dt id='qpnvK'><q id='qpnvK'><span id='qpnvK'><b id='qpnvK'><form id='qpnvK'><ins id='qpnvK'></ins><ul id='qpnvK'></ul><sub id='qpnvK'></sub></form><legend id='qpnvK'></legend><bdo id='qpnvK'><pre id='qpnvK'><center id='qpnvK'></center></pre></bdo></b><th id='qpnvK'></th></span></q></dt></tr></i><div id='qpnvK'><tfoot id='qpnvK'></tfoot><dl id='qpnvK'><fieldset id='qpnvK'></fieldset></dl></div>

        1. <tfoot id='qpnvK'></tfoot>
              <tbody id='qpnvK'></tbody>
              <bdo id='qpnvK'></bdo><ul id='qpnvK'></ul>

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

                  本文介绍了将 HTML5 Canvas 转换为要上传的文件?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  标准的 HTML 文件上传工作如下:

                  The standard HTML file upload works as follows:

                  <g:form method="post" accept-charset="utf-8" enctype="multipart/form-data"  
                       name="form" url="someurl">
                  
                      <input type="file" name="file" id="file" />
                  
                  </form>
                  

                  在我的情况下,我将图像加载到 html5 画布中,并希望将其作为文件提交到服务器.我能做到:

                  In my case I loaded an image into a html5 canvas and want to submit it as a file to the server. I can do:

                  var canvas; // some canvas with an image
                  var url = canvas.toDataURL();
                  

                  这给了我一个 base64 格式的图像/png.

                  This gives me a image/png as base64.

                  如何将 base64 图像发送到服务器,就像使用输入类型文件一样?

                  问题是base64文件和文件的类型不一样,在input type="file"里面.

                  The problem is that the base64 file is not of the same type as the file, which is inside the input type="file".

                  能否以某种方式转换服务器类型相同的base64?

                  推荐答案

                  出于安全原因,您不能直接设置文件输入元素的值.

                  For security reasons, you can't set the value of a file-input element directly.

                  如果你想使用文件输入元素:

                  If you want to use a file-input element:

                  1. 从画布创建图像(如您所做的那样).
                  2. 在新页面上显示该图像.
                  3. 让用户右键单击并保存到他们的本地驱动器.
                  4. 然后他们可以使用您的文件输入元素上传新创建的文件.

                  或者,您可以使用 Ajax 发布画布数据:

                  Alternatively, you can use Ajax to POST the canvas data:

                  你问的是 blob:

                  var blobBin = atob(dataURL.split(',')[1]);
                  var array = [];
                  for(var i = 0; i < blobBin.length; i++) {
                      array.push(blobBin.charCodeAt(i));
                  }
                  var file=new Blob([new Uint8Array(array)], {type: 'image/png'});
                  
                  
                  var formdata = new FormData();
                  formdata.append("myNewFileName", file);
                  $.ajax({
                     url: "uploadFile.php",
                     type: "POST",
                     data: formdata,
                     processData: false,
                     contentType: false,
                  }).done(function(respond){
                    alert(respond);
                  });
                  

                  注意:最新的浏览器一般都支持 blob.

                  Note: blob is generally supported in the latest browsers.

                  这篇关于将 HTML5 Canvas 转换为要上传的文件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  上一篇:将 HTML 元素渲染到 &lt;canvas&gt; 下一篇:创建具有 24 点或以上点阵的“新"尖刺标签

                  相关文章

                • <legend id='AbcDH'><style id='AbcDH'><dir id='AbcDH'><q id='AbcDH'></q></dir></style></legend>

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

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