aynı sorunu bende yaşamıştım.
resmi base64'e çevirirken ve bunu t ekrar resim formatına alırken base64 başlangıç değerlerine dikkat et. ben standart hale getirip sorunu aşmıştım.
public function base64($resim){
$im = file_get_contents($resim);
$imdata = base64_encode($im);
$r_url = "data:image/x-icon;base64,".$imdata;
$this->base64url = $r_url;
return true;
}
public function getimagesize_fromstring($string_data){
$uri = 'data://application/octet-stream;base64,' . base64_encode($string_data);
return getimagesize($uri);
}
public function base64resimkayit($resim,$nereye,$isim){
global $siteurl;
$img = urldecode($resim);
$img = str_replace('data:image/x-icon;base64', '', $img);
$img = str_replace('data:image/jpeg;base64,', '', $img);
$img = str_replace(' ', '+', $img);
$data = base64_decode($img);
$x = $this->getimagesize_fromstring($data);
if($isim==""){
$isim = uniqid();
} else {
$isim = $isim;
}
if($x[0] > 40 and $x[1] > 40 and $this->mimes($x['mime'])){
$file = $nereye . $isim . '.'.$this->mimeuzanti;
$success = file_put_contents($file, $data);
if(!$this->resimkontrol($file)){
return false;
} else {
if($success){
$resim = $siteurl.'/'.$file;
$this->resimyolu = str_replace("../","",$resim);
return true;
} else {
return false;
}
}
} else {
return false;
}
}