当前位置: 首页 > 面试题库 >

PHP数据URI到文件

冯风史
2023-03-14
问题内容

我有一个从javascript获取的数据URI,并尝试通过php保存。我使用以下代码给出了明显损坏的图像文件:

  $data = $_POST['logoImage'];

  $uri = substr($data,strpos($data,",")+1);

  file_put_contents($_POST['logoFilename'], base64_decode($uri));



data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs 9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAxklEQVQYlYWQMW7CUBBE33yITYUUmwbOkBtEcgUlTa7COXIVV5RUkXKC5AxU EdyZVD4kyKxkwIrr9vd0c7Oih aopinLNsF6Qkg2XW4XJ7LGFsAAcTV6lF5/jLdbALA9XDAXYfthFQVx OrmqKYK88/7rbbMFksALieTnzu9wDYTj6f70PKsp2kwAiSvjXNcvkWpAfNZkzWa/5a9yT7fdoX7rrB7hYh2fXo9HdjPYQZu3MIU8bYIlW20y0RUlXG2Kpv/vfwLxhTaSQwWqwhAAAAAElFTkSuQmCC

代码下面是实际的图像,作为Data-URI。’logoImage’是上面的字符串,而$ uri是字符串减去’image / jpeg; base64,’。


问题答案:

快速浏览PHP手册会得出以下内容:

如果要保存从Javascript canvas.toDataURL()函数派生的数据,则必须将空格转换为加号。如果不这样做,则解码的数据将被破坏:

<?php
  $encodedData = str_replace(' ','+',$encodedData);
  $decodedData = base64_decode($encodedData);
?>


 类似资料:
  • 问题内容: 因此,我需要通过php查询数据库,然后将查询转换为.json文件以使用Google图表。 我如何通过PHP将mysql查询转换为.json文件,如下所示: PS:此示例引自Google 问题答案: 您可以使用功能。 从数据库获取数据并将其分配给数组 然后使用。这将产生json结果。点击这里 使用功能将json结果保存到您的.json文件 以下是示例代码,

  • 问题内容: 我一直在尝试重新实现HTML5图像上传程序,例如MozillaHacks网站上的HTML5图像上传程序,但是它可以与WebKit浏览器一起使用。任务的一部分是从对象中提取图像文件,并将其附加到FormData对象以进行上传。 问题在于,虽然具有返回图像文件表示形式的功能,但FormData对象仅接受FileAPI中的 File或Blob对象。 Mozilla解决方案在Firefox上使

  • 我一直在尝试重新实现一个HTML5图像上传程序,就像Mozilla Hacks网站上的一样,但它适用于WebKit浏览器。部分任务是从对象中提取图像文件,并将其附加到FormData对象以供上传。 问题是,虽然具有函数来返回图像文件的表示形式,但FormData对象仅接受来自文件API的文件或Blob对象。 Mozilla解决方案在画布上使用了以下仅限Firefox的函数: ...这在WebKit

  • 问题内容: 我一直在尝试重新实现HTML5图像上传程序,HTML5图像上传程序,但是它可以与WebKit浏览器一起使用。任务的一部分是从对象中提取图像文件,并将其附加到FormData对象以进行上传。 问题在于,虽然具有返回图像文件表示形式的功能,但FormData对象仅接受FileAPI中的 File或Blob对象。 Mozilla解决方案在Firefox上使用了以下仅Firefox功能: …在

  • 除了Microsoft Edge,这段简单的代码在任何地方都能完美地工作 [JSFiddle] 在Microsoft Edge中,我得到“这很奇怪...Microsoft找不到此页面”错误: 更新:不幸的是,似乎没有办法在IE/Edge的链接中使用数据URI。我已经创建了关于检测链接中的数据URI支持的相关问题:用Modernizr检测链接中的数据URI支持

  • 我正在使用Rails后端构建一个Vue应用程序。我正在关注一些在线文章,其中提出了一个工作流程,我: 让我的Rails API生成一个预签名的S3URL 我通过Vue应用程序中的API请求获取 我使用该请求中的数据将实际图像直接发布到S3 前两个步骤工作正常,但是我很难理解如何在请求类型为“多部分/表单数据”的请求中包含文件数据。 我的代码如下,我使用vuetify作为组件库: 此请求失败,出现以