画像をデータベースにアップロードして表示する一般的な方法は、専用の PHP ページを作成し、GET または POST メソッドを通じて画像 ID を取得し、データベースにクエリを実行し、ヘッダー関数を通じて画像タイプを出力することです。 、画像データをエコーします。
問題の詳細:
php はデータベースの blob
フィールドにファイルをアップロードできます実際には、ファイルをサーバーに保存し、関連する情報のみをデータベースに記録する方が良い方法ですが、常に希望どおりにできるわけではありません。いいえ、画像をデータベースにアップロードして Web ページに表示することしかできませんが、画像を表示できないという問題が発生しました。
画像をデータベースにアップロードして表示する一般的な方法は、専用の php ページを作成し、画像 ID を取得し、データベースにクエリを実行し、GET
または # を使用してヘッダー関数を実行することです。 ##POST メソッドです。画像の種類を出力し、画像データをエコーするだけです。この方法では問題ありませんが、画像が表示できないという問題があります。
stack overflow に回答がありました。英語なので引用は省略します。元の文です。内容は
headerこの関数は少し特殊です。
headerの位置より前に他のヘッダや他の内容が存在しないように注意してください。結果がこの問題です。 JavaScript 関数を含むいくつかの一般的な関数を含む php ファイルの場合、画像を出力する PHP ファイル内の require ステートメントを削除するだけで、画像を出力できます。
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="html/text;charset=utf-8"/> </head> <body> <form action="#" name="form" method="post" enctype="multipart/form-data"> <p> <input type="file" name="img" value="选择上传文件"/> </p> <input type="submit" value="上传"/> </form> </body> </html> <?php date_default_timezone_set("PRC"); //设置时区 if(count($_FILES)>0){ $sort = array("image/jpeg","image/jpg","image/gif","image/pdg"); //判断是否是图片类型 if(in_array($_FILES['img']['type'],$sort)){ $img = "img"; //获取上传到的文件夹位置 //判断文件夹是否存在 ,如果不存在创建一个 if(!file_exists($img)){ mkdir("$img",0700); //0700最高权限 } $time=date("Y_m_d_H_i_s"); //获取当前时间 $file_name = explode(".",$_FILES['img']['name']); //$_FILES['img']['name'] 上传文件的名称 explode字符串打断转字符串 $file_name[0]=$time; $name = implode(".",$file_name); //implode 把数组拼接成字符串 $img_name = "img/".$name; if(move_uploaded_file($_FILES['img']['tmp_name'],$img_name)){ //move_uploaded_file 移动文件 echo "<center><img style='width:1000px;' src='$img_name'> <p> <a href='img_uploading.php'>重新上传</a></p></center>"; }else{ echo "上传失败"; } }else{ echo "不是图片类型"; } } ?>
以上が表示できない画像をアップロードするPHPの問題の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。