2017-12-11 8 views
0

SQL 데이터베이스 (BLOB)에 50 개의 이미지가 저장되어 있습니다. 어떻게 그것을 선택하여 뷰의 이미지로 표시 할 수 있습니까? 내가 DB 쿼리를 반환하는 경우Laravel을 사용하여 PHP에서 BLOB 파일을 선택하는 방법

것은 나는 내가 이미지에 대한 매우 긴 문자열을 얻을이

Route::get('/', function() { 

    $pics = DB::table('Employees')->get(); 
    return $pics; //just to test if i get something return from the db 
    //return view('welcome', compact("pics")); 

}); 

같은 것을 시도했다. 내가보기에 base64_encode이 뭔가를 시도

FFD8FFE1001845786966000049492A00080000000000000000000000FFEC00114475636B7900010004000000500000FFE1031D687.... 

:

@foreach ($pics as $pic) 

     <img src="base64_encode({{ $pic->image }})" /> 

    @endforeach 

불행하게도이 작동하지 않습니다와 나는 그것을 인코딩하는 방법을 알고하고 img의 경로로 반환하지 않습니다 속성 src.

+1

이미지를 저장하는 방법을 코드로 표시 할 수 있습니까? – Ben

답변

0

16 진수 값을 string으로 변환 한 다음 base64로 문자열을 인코딩해야합니다.

는 문자열로 16 진수 값을 변환하려면 :

$string = pack('H*', 'FFD8FFE1001845786966000049492A00080000000000000000000000FFEC00114475636B7900010004000000500000FFE1031D687'); 

는 그런 다음 이미지를 표시 할 Data URI schema를 사용할 수 base64로

$string = base64_encode($string); 

하여 문자열을 인코딩합니다. 베이스 file signatures, 당신이 주어진 16 진수 문자열은 jpg 이미지입니다. 그에 따라 MIME 형식도 변경해야합니다.

<img src="data:image/jpg;base64,<?=$string?>" />