良い午後、よろしく!PHPはMySQLイメージを印刷しません
"ID"、 "ログイン"、 "パス"、 "イメージ"(BLOB)という4列の行を含むテーブルを持つデータベースがあります。私はユーザー認証などのシステムを持っており、ユーザーが登録した画像をトップバーに表示するように実装したいと考えています。すべては今のところかなりうまく働いている、唯一の問題は、データベースのイメージは次のように印刷されていることである。
ÿØÿàJFIF``ÿÛC %# , #&')*)-0-(0%()(ÿÛC (((((((((((((((((((((((((((((((((((((((((((((((((((
ÿÀ€€"ÿÄ ÿĵ}!1AQa"q2‘¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’
“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖ×ØÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ ÿĵw!1AQaq"2B‘¡±Á #3R
ðbrÑ $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹º
詳細:私はNOTEPADでデータベースに選択した画像を開くと、それは上記のように同じです。
include "dbconnection.php";
$defaultpath = "img/avatar.png";
$sql = "SELECT * FROM `bg_users`";
$query = mysql_query($sql);
$result = mysql_fetch_assoc($query);
if (!isset($_SESSION)) {
$_SESSION['UserImage'] = $result['image'];
print $_SESSION['UserImage'];
}
else {
echo "src='img/avatar.png'";
}
?>
IMAGE.PHPは再び、PHPとMySQLの間の相互作用はcompletly結構です。問題は、PHPがイメージとしてファイルを印刷していないことです。 image.phpにはすでにヘッダーパラメータが含まれているため、header("Content-type: image/png");
を作成できません。
誰かが私にこれを手伝ってもらえませんか?私は非常に満足しています
ありがとう!
まず、**イメージをHTMLに印刷するのではなく、その場所にURLを置くと、Webサーバーから要求されたときに画像が返されます。 –
@AnttiHaapalaは正しいです。画像を出力するには別のPHPページが必要です。また、PHPでコンテンツタイプを宣言し、ob_flush()を使用してイメージを出力する直前に出力バッファをクリアするようにしてください。 –
さて、技術的には、画像をデータURIとして出力することはできますが、処理が遅くなります。 –