将base64编码的图像保存到PHP中的文件中

J.K*_*.A. 2 php jquery

我有以下代码:

<?php
header('Content-Type: image/png');
$data = "iVBORw0KGgoAAAANSUhEUgAAAuAAAAI8CAYAAACwIh5dAAAgAElkZJgRCXxOAuIPzzTlg......";       
define('UPLOAD_DIR', '/home/Desktop/image.png');
$img = $data;
$img = str_replace('data:image/png;base64,', '', $img);
$img = str_replace(' ', '+', $img);
$data = base64_decode($img);
$file = UPLOAD_DIR . uniqid() . '.png';
$success = file_put_contents($file, $data);
print $success ? $file : 'Unable to save the file.';
?>
Run Code Online (Sandbox Code Playgroud)

这里$data包含base-64中编码的图像字符串.我想将图像保存到文件中.我做了以前的代码也经历了谷歌的很多教程,但它不起作用.

任何人都可以在我出错的地方帮助我.

提前致谢.

Oli*_*ver 6

define('UPLOAD_DIR', '/home/xpointers/Desktop/');
Run Code Online (Sandbox Code Playgroud)

记得!您的apache webserver将以其自己的用户权限运行(例如www-data).请注意,您的apache用户或组apache可以访问您所需的目录.要测试你可以chmod 777到这个目录,看看会发生什么.

在用户目录中编写并不总是一个好主意.如果可能,请使用所需用户可以访问的中性目录.


Chr*_*ler 5

我相信这一行:

define('UPLOAD_DIR', '/home/Desktop/image.png'); 
Run Code Online (Sandbox Code Playgroud)

应该:

define('UPLOAD_DIR', '/home/Desktop/'); 
Run Code Online (Sandbox Code Playgroud)