1

私はphpに比較的慣れていません。mysql データベースから blob データを取得した後、ブラウザ (google chrome) に画像を表示する際に問題があります。

基本的に、下のエコーの前にスラッシュを追加すると、次のコードが機能します。しかし、私は他のオンラインチュートリアルに従っており、講師はスラッシュを使用せずに画像を表示することができましたが、画像を表示することはできません. 標準ルールとは何か?追加するもう1つのこと-ブラウザで画像を取得できない場合、代わりにtingサムネイルを取得します。画像を確実に表示する方法を教えていただければ幸いです。私が作りたいサイトは画像だけです。つまり、そのような基本的なものです。お時間をいただきありがとうございます。

<?php
$conn = mysql_connect ("localhost","root","arctic123");
$db = mysql_select_db ("user_images", $conn);

if(!$db) {
    echo mysql_error();
}

$q = "SELECT * FROM images";
$r = mysql_query ("$q",$conn);
if($r) {
    while($row = mysql_fetch_array($r)) {
        //echo $row ['username'];
        //echo "<br>";
        header ("Content-type: image/jpeg");
        echo $row ['logo'];
        //echo "<br>";
    }
}else{
    echo mysql_error();
}
?>
4

3 に答える 3

2

headerコードに出力を追加することはできません: http://php.net/manual/en/function.header.php

ベスト プラクティスは、画像をディレクトリにアップロードし、画像のパス/ファイル名をデータベースに保存することです。また、PHP でさまざまなサイズやサムネイルを作成するなど、画像の操作が簡単になります。そして、必要なディスク容量は約 4 分の 1 です...

于 2012-11-26T23:20:56.833 に答える
0

画像をデータベースに保存しないことをお勧めします。技術的には可能ですが、パフォーマンスに重大な問題があります。ベスト プラクティスは、画像用のフォルダーを指定してから直接アクセスすることです。MySQL のフィルタリングおよびソート機能が必要な場合は、現在画像データを格納している BLOB 列を、ファイル名を含む VARCHAR に置き換えます。

<?php
$conn = mysql_connect ("localhost","root","arctic123");
$db = mysql_select_db ("user_images", $conn);
$imgdir = "/path/to/image/directory/";

if(!$db) {
    echo mysql_error();
}

$q = "SELECT * FROM images";
$r = mysql_query ("$q",$conn);
if($r) {
    while($row = mysql_fetch_array($r)) {
        echo $row['username'];
        echo "<br>";
        echo "<img src='" . $imgdir . $row['logo'] . "' />";
        echo "<br>";
    }
}else{
    echo mysql_error();
}
?>
于 2012-11-27T00:34:19.353 に答える
0

画像を MySQL に保存しないことを願っています。データベースを不必要に重くするため、有害な行為をやめてください...

于 2012-11-26T23:22:08.757 に答える