您好,登錄后才能下訂單哦!
php上傳圖片無法顯示怎么辦?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
把圖片上傳到數據庫然后顯示一般的做法是專門寫一個php頁面,通過GET或POST方法獲取圖片的id、查詢數據庫、header函數輸出圖片類型、再echo圖片數據就可以了。
問題詳情:
php可以通過表單上傳文件到數據庫的blob
字段,然后輸出,其實更好的做法是把文件保存到服務器,只在數據庫中記錄相關信息就可以了,但是不是任何時候都能照自己的想法去做。這不,我只能上傳圖片到數據庫然后顯示在網頁,結果卻遇到了問題:圖片無法顯示。
把圖片上傳到數據庫然后顯示一般的做法是專門寫一個php頁面,通過GET
或POST
方法獲取圖片的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['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 "不是圖片類型"; } } ?>
不得不說編程有時候是件很讓人頭疼的事,僅僅因為一個語句,卻花了我一天時間去嘗試各種方法;可是編程又是件有意思的事,因為在解決了問題,程序成功運行的時刻,那種成就感、滿足感真的讓人難以忘懷。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。