2

我有以下代码:

<?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.';
?>

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

谁能帮助我哪里出错了。

提前致谢。

4

3 回答 3

6
define('UPLOAD_DIR', '/home/xpointers/Desktop/');

记住!您的 apache 网络服务器将以自己的用户权限运行(例如 www-data)。请注意,您的 apache 用户或运行 apache 的组可以访问您想要的目录。要测试你可以 chmod 777 到这个目录,看看会发生什么。

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

于 2012-06-04T13:04:33.897 回答
5

我相信这条线:

define('UPLOAD_DIR', '/home/Desktop/image.png'); 

应该:

define('UPLOAD_DIR', '/home/Desktop/'); 
于 2012-06-04T12:59:35.113 回答
-9

首先指定正确的路径,如:

define('UPLOAD_DIR', '/home/Desktop/');

检查您提供的路径是否设置了读/写权限后。

于 2012-06-05T05:12:09.223 回答