ホームページ > バックエンド開発 > PHPチュートリアル > 表示できない画像をアップロードするPHPの問題

表示できない画像をアップロードするPHPの問題

卡哇伊
リリース: 2023-04-09 06:52:01
オリジナル
3010 人が閲覧しました

画像をデータベースにアップロードして表示する一般的な方法は、専用の PHP ページを作成し、GET または POST メソッドを通じて画像 ID を取得し、データベースにクエリを実行し、ヘッダー関数を通じて画像タイプを出力することです。 、画像データをエコーし​​ます。

表示できない画像をアップロードするPHPの問題

問題の詳細:

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[&#39;img&#39;][&#39;type&#39;],$sort)){ 
 $img = "img";    //获取上传到的文件夹位置
//判断文件夹是否存在 ,如果不存在创建一个
if(!file_exists($img)){
   mkdir("$img",0700);        //0700最高权限
}
$time=date("Y_m_d_H_i_s");     //获取当前时间
$file_name = explode(".",$_FILES[&#39;img&#39;][&#39;name&#39;]);         //$_FILES[&#39;img&#39;][&#39;name&#39;] 上传文件的名称 explode字符串打断转字符串
$file_name[0]=$time; 
$name = implode(".",$file_name);    //implode 把数组拼接成字符串
$img_name = "img/".$name;
if(move_uploaded_file($_FILES[&#39;img&#39;][&#39;tmp_name&#39;],$img_name)){   //move_uploaded_file 移动文件
   echo "<center><img style=&#39;width:1000px;&#39; src=&#39;$img_name&#39;>
   <p>
   <a href=&#39;img_uploading.php&#39;>重新上传</a></p></center>";
}else{
     echo "上传失败"; 
}
}else{ 
echo "不是图片类型";
}
}
?>
ログイン後にコピー

プログラミングは時々非常に面倒なことだと言わざるを得ません。ステートメントのためだけに、さまざまな方法を試すのに 1 日かかりました。しかし、プログラミングは面白いものです。なぜなら、問題が解決されたとき。プログラムが正常に実行されたときの達成感と満足感は本当に忘れられません。

その他の学習チュートリアル:

PHP 画像アップロード チュートリアル

以上が表示できない画像をアップロードするPHPの問題の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート