2013-07-10 46 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並嘗試。