我尝试使用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.';
答案 0 :(得分:4)
$数据= “...”; // image base64 string
假设$data
包含注释所说的内容,如果在图像中放置base64字符串,它显然不是有效图像 - 它将是包含base64编码字符串的文件。
有效(或有机会有效)在将字符串写入文件之前解码字符串:
$data="..."; //image base64 string
$file = UploadDir ."/". $path;
$success = file_put_contents($file, base64_decode($data));
答案 1 :(得分:0)
目录是../Dir/images chmoded to 777
吗?有时,如果没有足够的权限,php将不允许您访问目录。
尝试查看它是否具有足够的权限,如果没有,则将其设置为777
并尝试使用。