【发布时间】:2011-11-09 14:37:21
【问题描述】:
我在使用通过 canvas 的 todataurl() 方法创建的数据时遇到了困难。目前,我的代码将结果数据发送到我的 php 服务器,该服务器使用 file_put_contents() 方法创建一个文件来存储该数据。现在,如果我将生成的乱码从文件中剪切并粘贴到图像标签 src 中,它可以正常工作并正确显示,所以我认为到目前为止一切都很好。
但是当我尝试在 JS 中使用代码时,我一直遇到问题。我已经尝试过 php 的 base64_decode 方法,但不断收到损坏的文件。我找到了这段代码:
<?php
$encodedData = str_replace(' ','+',$encodedData);
$decocedData = base64_decode($encodedData);
仍然有损坏的文件。理想情况下,我想用它创建一个 .png 文件,但我会满足于在 JS 中再次处理数据文件。非常感谢任何帮助。
【问题讨论】:
-
您只需读取 MIME 类型(可能是固定的/已知的)和编码(可能没有)来解释数据,这是标准 Base64。如果您之前对输入进行了 URL 编码,则不会有任何空格可以替换。 PHP-FileUpload 有一个
DataUriUpload组件,它会自动完成所有这些工作。它记录在here。
标签: php javascript canvas