图像不存在时不显示错误图像

时间:2016-12-23 08:55:18

标签: php onerror

我正在使用此代码:

$.ajax({
    url: 'process.php',     // process.php file resides in the same folder where this file resides                       
    type: 'POST',                                  
    data: {
        id : id,    // id of selected record
    },
    success: function(response){
        // response from process.php which is an json object that contain data on diff index 

        var data = JSON.parse(response);

        // To set the data for autofill
        $('#selector1').val(data.val1);
        $('#selector2').val(data.val2);
        // and so on
    }
});

问题是尽管123.jpg图像不存在,但是没有显示错误图像(no-image.jpg)。

我收到以下错误消息: 警告:对于img / 123.jpg

,filesize():stat失败

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

你混淆了PHP和javascript 最好的方法是在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);
}

如果文件不存在,则会在此处显示no-image.jpg。 在输出中,您可以删除onerror

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