3
데이터베이스의 이미지를 큰 BLOB로 저장했습니다. 이제 파일을 검색하여 파일 시스템에 저장하려고합니다.blob을 PHP의 이미지 파일에 저장
다음을 수행했지만 내 파일 시스템에 저장된 이미지가 손상되었습니다.
Approach1 :
$basedir = 'images/';
$imagename = strtolower(preg_replace('/([^\w\d\-_]+)/', '-', $row->name));
$filename = $basedir . $imagename . '_' . $row->id. '.jpg';
$file_content = base64_decode($row->image_data);
return file_put_contents($filename, $file_content);
하여 추정 :
$basedir = 'images/';
$imagename = strtolower(preg_replace('/([^\w\d\-_]+)/', '-', $row->name));
$filename = $basedir . $imagename . '_' . $row->id . '.jpg';
fopen($filename,'w');
if($fh = fopen("{$filename}", "wb")) {
fwrite($fh, base64_decode($row->image_data));
fclose($fh) ;
}
도와주세요! BLOB에 인코딩되어 있지 않은 경우
은 왜 BLOB의 데이터가 저장되어있는 base64로 인코딩으로? BLOB의 포인트는 2 진 데이터를 저장하는 것이고, base64의 포인트는 2 진 데이터를 일반 텍스트로 변환하여 예를 들어 VARCHAR에 저장할 수 있도록하는 것입니다. – DaveRandom
비밀 이미지가 있습니까? – Oyeme
예, Base64는 더 많은 리소스 (메모리, 프로세싱)를 활용합니다. –