0

データベースからbinary(blob)データを取得し、ブラウザに画像として表示するこのphpコードがあります。ただし、これ以降はすべて無視されます。テキストも使用できる方法はありますqueries/forms/tablesか?同じページの基本的なHTML要素?

DBからの画像のみを表示できるページがあり、それ以外は何も役に立たない。

<?php
    $mysqli=mysqli_connect('localhost','root','','draftdb');
    if (!$mysqli)
    die("Can't connect to MySQL: ".mysqli_connect_error());
    $imageid= 1;
    $stmt = $mysqli->prepare("SELECT PICTURE_ID FROM display WHERE INDEX_ID =?"); 
    $stmt->bind_param("i", $imageid);
    $stmt->execute();
    $stmt->bind_result($image);
    $stmt->fetch();
    header("Content-Type: image/jpeg");
    echo $image; 
?>
4

4 に答える 4

4

Content-Typeいいえ、 1ページに1つしか持てません。

次のように、画像(srcが表示したコードを指している)と表示するフォームの両方を含む別のページを作成するだけです。

<html>
    <body>
        <div>
            <img src="image.php" alt="image retreived from DB" />
        </div>
        <form>
            <input type="text" name="foo" />
            ...
        </form>
    </body>
</html>
于 2012-07-27T18:03:38.430 に答える
2

画像タイプのヘッダーコンテンツを使用する場合、このページに表示できる情報は画像自体のみです。ただし、大きなスクリプト内でサブphpスクリプトを使用し、サブスクリプトに画像ヘッダーを返させてから、通常のスクリプトにこれを使用して他のことを実行させることは可能です。

あなたはこれを行うことができます:<img src="\path\to\php\script" />あなたの他のスクリプトの内部で、それはあなたが望むように動作します。

于 2012-07-27T18:03:49.143 に答える
2

1つのhttp応答に複数のコンテンツタイプを含めることはできません。

DBからの画像を使用してページを作成するには、通常のページを作成し、imgタグに次のオプションのいずれかを使用できます。

  1. src="your_picture_script.php?pic_id=xxxx"-'your_picture_script.php'は、ほとんどあなたの質問の例になります。

  2. src="data:image/jpeg;base64,<?php echo base64encode($image);?>"--$imageは実際のjpegファイルです。

于 2012-07-27T18:11:01.267 に答える
0

<img>タグで画像を表示しないのはなぜですか?次に、その下に他のHTML要素を記述しますか?

Content-Typeヘッダーは、表示するデータのタイプをブラウザーに通知します。画像をHTMLで表示することはできますが、画像をHTMLで表示することはできません(HTMLコードの画像でない限り)。

于 2012-07-27T18:05:02.023 に答える