首頁  >  文章  >  後端開發  >  php上傳圖片無法顯示的問題

php上傳圖片無法顯示的問題

卡哇伊
卡哇伊原創
2020-07-06 11:15:352882瀏覽

把圖片上傳到資料庫然後顯示一般的做法是專門寫一個php頁面,透過GET或POST方法取得圖片的id、查詢資料庫、header函數輸出圖片類型、再echo圖片資料就可以了。

php上傳圖片無法顯示的問題

問題詳情: 

#php可以透過表單上傳檔案到資料庫的blob字段,然後輸出,其實更好的做法是把文件保存到伺服器,只在資料庫中記錄相關資訊就可以了,但是不是任何時候都能照自己的想法去做。不,我只能上傳圖片到資料庫然後顯示在網頁,結果卻遇到了問題:圖片無法顯示。

把圖片上傳到資料庫然後顯示一般的做法是專門寫一個php頁面,透過GETPOST方法來取得圖片的id、查詢資料庫、header函數輸出圖片類型、再echo圖片資料就可以了,這個方法是沒有問題的,可是我卻出了問題,圖片總是無法顯示。

在網路上查詢了很多資料,試了很多方法,都不行,最後在stack overflow上看到一個回答,由於是英文就不原句引用了,內容是header這個函數有些特殊,要小心不要在header位置前有其他的header或別的什麼內容,結果就是這個問題,由於我寫了一個php檔案包含了一些通用函數,其中也有javascript的函數,我在輸出圖片的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 "不是图片类型";
}
}
?>

不得不說程式設計有時候是件很讓人頭疼的事,僅僅因為一個語句,卻花了我一天時間去嘗試各種方法;可是編程又是件有意思的事,因為在解決了問題,程式成功運行的時刻,那種成就感、滿足感真的讓人難以忘懷。

更多學習教學:PHP 圖片上傳教學

#

以上是php上傳圖片無法顯示的問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn