我正在尝试在页面上显示内联图像。它由一个 codeigniter 控制器提供服务。
class Asset extends MY_Controller {
function index( $folder, $file ) {
$asset = "assets/$folder/$file";
if ( !file_exists( $asset ) ) {
show_404();
return;
}
switch ( $folder ) {
case 'css':
header('Content-type: text/css');
break;
case 'js':
header('Content-type: text/javascript');
break;
case 'images':
$ext = substr( $file, strrpos($file, '.') );
switch ( $ext ) {
case 'jpg':
$ext = 'jpeg';
break;
case 'svg':
$ext = 'svg+xml';
break;
}
header('Content-Disposition: inline');
header('Content-type: image/'.$ext);
}
readfile( $asset );
}
}
当我在 FF 的 Chrome 中加载图像时,它会弹出下载窗口。我知道当浏览器无法内联显示内容时,无论如何它都会强制下载,但这些是 PNG 和 GIF 图像,否则它们可以在浏览器中正常显示。在 IE 中,它不会强制下载,但会以 ASCII 格式显示图像。
如果我注释掉整个图像情况,FF 和 Chrome 都显示 ASCII 但不显示图像。
我认为设置内容类型将允许 FF 和 Chrome 显示实际图像,并且还允许将位置用作 src。
javascript和css当然很好。
有人知道如何使图像正确显示吗?