PHP에서 SQL 데이터베이스 (base64_encode 이후에 저장 됨)에서 이미지 blob을 디코딩하려고합니다.Base64 디코드 이미지 PHP
브라우저의 언어가 영어 인 경우는 약간의 시간을 작동하지만 나는
header('Pragma: public');
header('Cache-control: max-age=0');
header('Content-Type: image');
header("Content-Encoding: gzip");
header("Vary: Accept-Encoding");
echo gzencode(base64_decode ($result[0]['Icon'])); // result is the result of query from DB
를 사용하고 있지만, 브라우저의 언어가 영어가 아닌 경우 제대로 디코딩하지 않습니다.
저는 응답을보기 위해 찰스 프록시로 디버깅 중입니다. 나는 여기에 답변을 게시 할 수 없습니다. 영어 응답의 크기는 다른 응답보다 3 바이트 적습니다.
그러나 다른 언어의 경우 추가 3 바이트로 이와 같이 나타납니다.
T�e�s�t�i�n�g� �
이미지의 인코딩 된 문자열에 대해 DB를 검사했습니다. 그것은 DB에서 동일하지만 응답이 전송 될 때와 다릅니다. 따라서 언어가 영어 인 경우 이미지가 올바르게 표시되지만 언어가 영어가 아닌 경우 이미지가 깨집니다. 도와주세요.
왜 gzencode()를 사용하고 있습니까? 그 여분의 단계를 생략하고 단순히 base64_decode (...)를 반향하면 어떻게됩니까? – Peter
gzencode를 제거합니다. gzencode를 제거하면 원시 이미지 데이터가 출력되지만 예상 한 결과는 아닙니다. 이미지, 콘텐츠 유형을 설정해야합니다. 올바른 헤더 –
@ 피터 gzencode를 제거하더라도 훨씬 더 큰 크기의 응답을 제외하고는 응답이 비슷합니다. – Theguy