これには2つのオプションがあります。データプロトコルを使用して、画像全体を背景のURLに埋め込むか(画像が数kbより大きい場合はお勧めしません)、スクリプトを使用して次のことを行うことができます。画像の一意のキーをエンコードまたは記録して画像を表示します。たとえば、bg.php?id = 4323-34442-3432-4532は、ファイルパスを取得するためにdbをチェックし、適切なコンテンツタイプでコンテンツをエコーします。
いくつかの例;
データURIウィキペディアページに基づく
データURIメソッド
このような機能を想定しています。
function data_uri($fileID) {
$fRecord = mysql_fetch_array(
mysql_select("SELECT filePath, mimeType from fileTable WHERE fileID = " $fileID . ";")
);
$contents = file_get_contents($fRecord['filePath']);
$base64 = base64_encode($contents);
return "data:$fRecord['mimeType'];base64,$base64";
}
次に、html/phpページに次のスニペットがあります
style="background-image:url('<?php echo data_uri($fileID);?>'
PHPイメージダンプ
このような機能を想定しています。
// Given a filename and a mimetype; dump the contents to the screen
function showDocumentContent($fileID){
$fRecord = mysql_fetch_array(
mysql_select("SELECT filePath, mimeType from fileTable WHERE fileID = " $fileID . ";")
);
header( 'Content-Encoding: none', true );
header( 'Content-Type: ' . $fRecord['mimeType'], true );
echo readfile( $fRecord['filePath'] );
}
次に、HTMLページにこれがあります。
style="background-image:url('image.php?fileID=123')
最初のケースでは、数KBを超える画像は、同じように大きなHTMLページになり、ブラウザで一貫してサポートされない場合があります。2番目のケースでは、画像のふりをするphpスクリプトを効果的に作成しているはずです。どちらの場合も、サーバー上のバイナリファイルへの実際のパスは、データベースにマッピングを保存することで抽象化されます。