2016-12-23 1 views
1

존재하지 않는 경우 표시되지 :의 OnError 이미지는 이미지가이 코드를 사용하고

function base64_encode_image ($filename=string,$filetype=string) { 
    if ($filename) { 
     $imgbinary = fread(fopen($filename, "r"), filesize($filename)); 
     return 'data:image/' . $filetype . ';base64,' . base64_encode($imgbinary); 
    } 
}} 


<img src="<?php echo base64_encode_image ('img/123.jpg','jpg'); ?>" alt='' onerror="this.onerror=null;this.src='img/no-image.jpg';"/> 

문제는 123.jpg 이미지를하지 않습니다 있지만의 OnError 이미지 (NO-가 image.jpg)가 표시되지 않는 것입니다 있다.

나는 다음과 같은 오류 메시지가 : 경고 : 파일 크기를() : 합계가 어떤 도움을 주시면 감사하겠습니다

IMG/123.jpg 실패했습니다.

답변

0

PHP와 자바 스크립트가 섞여 있습니다.
가장 좋은 방법은이 기능을 PHP 기능에서 수정하는 것입니다. 예를 들어

:

function base64_encode_image ($filename=string,$filetype=string) { 
    if (!$filename || !file_exists($filename)) { 
     $filename = 'img/no-image.jpg'; 
     $filetype = 'jpg'; 
    } 

    $imgbinary = fread(fopen($filename, "r"), filesize($filename)); 
    return 'data:image/' . $filetype . ';base64,' . base64_encode($imgbinary); 
} 

파일이 존재하지 않는 경우, 여기에는-가 image.jpg을하지 않습니다. 출력 결과에 onerror :

<img src="<?php echo base64_encode_image ('img/123.jpg','jpg'); ?>" alt='' /> 
+0

위대한 결과를 나타낼 수 있습니다. 고맙습니다 ! – Sally

관련 문제