1

我尝试使用 file_put_contents 上传目录中的图像,文件已上传但已损坏,我无法打开它。这是我的代码:

define('UploadDir','../Dir/images');
$path = "image.png";
$data="..."; //image base64 string
$file = UploadDir ."/". $path;
$success = file_put_contents($file, $data);
echo $success ? $file : 'Unable to save the file.';
4

2 回答 2

4

$data="..."; //图片base64字符串

假设$data包含评论所说的内容,如果您将 base64 字符串放入图像中,它显然不是有效的图像 - 它将是一个包含 base64 编码字符串的文件。

要有效(或有机会有效)在将字符串写入文件之前对其进行解码:

$data="..."; //image base64 string
$file = UploadDir ."/". $path;
$success = file_put_contents($file, base64_decode($data));
于 2013-07-10T10:56:12.717 回答
0

是目录../Dir/images chmoded to 777吗?如果目录没有足够的权限,有时 php 将不允许您访问目录。试试看它是否有足够的权限,如果没有,然后设置它777并尝试一下。

于 2013-07-10T10:53:58.470 回答