2016-12-23 13 views
1

ich diesen Code bin mit:onerror Bild nicht angezeigt, wenn Bild existiert nicht

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';"/> 

Das Problem ist, dass das onerror Bild (no-image.jpg) zeigt nicht, obwohl 123.jpg Bild nicht existieren.

bekomme ich folgende Fehlermeldung: Warnung: Dateigröße(): Stat für img/123.jpg fehlgeschlagen

Jede Hilfe würde geschätzt.

Antwort

0

Sie vermischen PHP und Javascript.
Der beste Weg ist, dies in Ihrer PHP-Funktion zu beheben.

Zum Beispiel:

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); 
} 

Wenn die Datei nicht existiert, wird es dauern, die no-image.jpg hier. In Ihrer Ausgabe, können Sie die onerror fallen:

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

Große, es funktionierte. Vielen Dank ! – Sally