2013-07-10 6 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

«поврежден» каким образом? –

ответ

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 и попробуйте.

Смежные вопросы