2013-07-10 41 views
1

我尝试使用file_put_contents上传目录中的图像,该文件已上传但已损坏,无法打开。这里是我的代码:使用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

损坏怎么办?它有多大? '$ data'包含什么?这需要更多细节才能行得通。 –

+0

'损坏'以什么方式? – 2013-07-10 10:54:33

回答

4

$ data =“...”; //图像的base64字符串

假设$data包含批注说的话,如果你把一个base64字符串图像中它显然不会是一个有效的图像 - 这将是包含base64编码字符串的文件。

有效(或在是有效的机会),将其写入文件之前解码字符串:

$data="..."; //image base64 string 
$file = UploadDir ."/". $path; 
$success = file_put_contents($file, base64_decode($data)); 
0

是目录../Dir/images chmoded to 777?有时PHP不会允许你访问目录,如果他们没有足够的权限。 尝试查看它是否有足够的权限,如果没有,则将其设置为777并尝试。