ページにインラインで画像を表示しようとしています。これは 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は問題なく表示されます。
画像を適切に表示する方法を知っている人はいますか?