【问题标题】:How to save a base64 decoded image in the filesystem using php?如何使用 php 在文件系统中保存 base64 解码图像?
【发布时间】:2011-11-24 06:21:32
【问题描述】:

我通过对我的 Web 服务的 POST 请求获得一个 base64 编码的 JPEG 字符串。 我想对其进行解码并将其保存在文件系统中。 如何使用 PHP 5.3 实现这一点。 我能够使用 base64_decode 函数成功解码数据。

如何将此解码后的字符串保存为服务器中的 JPEG 图像?

提前致谢。

【问题讨论】:

  • 你是否尝试使用 fopen 将其保存在二进制文件中?
  • @Arfeen 谢谢,我尝试了 file_put_contents() 并且成功了。我来这里是为了更新我的问题,以注意到您和劳伦斯·切罗内的 cmets。
  • 作为一个更加灵活和强大的通用解决方案,PHP-FileUpload 带有Base64Upload 和DataUriUpload,它们是documented here。

标签: php web-services base64


【解决方案1】:

如果您确定图像将始终为 jpg,那么您可以简单地使用:file_put_contents();

<?php 
$decoded=base64_decode($encodedString);

file_put_contents('newImage.JPG',$decoded);
//leave it to you to randomize the filename.
?>

【讨论】:

  • 非常感谢。有用。但是,它不能保证始终是 JPEG。我会尝试看看是否可以从 MIME 类型中获取它。 :) 感谢帮助!
【解决方案2】:

如果数据来自 canvas.toDataURL() 函数,则需要用 + 号替换空格。

 $encodedString = str_replace(' ','+',$encodedString);

See this question

这对我有很大帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-24
    • 2016-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-20
    • 1970-01-01
    • 2021-10-29
    相关资源
    最近更新 更多