看板 PHP 關於我們 聯絡資訊
想請問大家 關於檔案上傳圖片功能 我是採用存入資料庫 利用base64_encode($FileContents)技術 卻發現檔案大小若超過100kb 圖片就顯示不完全 只有片段 以下是我的程式碼 利用三個php檔呼叫 <HTML> <head> <meta http-equiv="Content-Type" content="text/html; charset=big5"> <title>圖片檔案上傳</title> </head> <BODY> <H3>圖片檔案上傳:(存入資料庫)<HR></H3> <Form Action="mygetfile_pic.php" Method="POST" Enctype="multipart/form-data"> <Input Type="File" Name="upfile" ><br> <Input Type="Submit" value=" 開始上傳 "> </Form> </BODY></HTML> <HTML> <head> <meta http-equiv="Content-Type" content="text/html; charset=big5"> <title>圖片檔案上傳</title> </head><BODY><H3>圖檔存入相關資訊:<HR></H3> <? echo "<BLOCKQUOTE>"; echo "檔案名稱:" . $_FILES["upfile"]["name"] . "<BR>"; echo "檔案大小:" . $_FILES["upfile"]["size"] . "<BR>"; echo "檔案類型:" . $_FILES["upfile"]["type"] . "<BR>"; echo "暫存檔名:" . $_FILES["upfile"]["tmp_name"] . "<BR>"; if ( $_FILES["upfile"]["size"] > 0 ) { //開啟圖片檔 $file = fopen($_FILES["upfile"]["tmp_name"], "rb"); // 讀入圖片檔資料 $fileContents = fread($file, filesize($_FILES["upfile"]["tmp_name"])); //關閉圖片檔 fclose($file); // 圖片檔案資料編碼 $fileContents = base64_encode($fileContents); //連結MySQL Server $dbnum=mysql_connect("localhost","root",""); //選取資料庫 mysql_select_db("pic"); //組合查詢字串 $SQLSTR="Insert into myimage (filename,filesize,filetype,filepic) values('" . $_FILES["upfile"]["name"] . "'," . $_FILES["upfile"]["size"] . ",'" . $_FILES["upfile"]["type"] . "','" . $fileContents . "')"; //將圖片檔案資料寫入資料庫 if(!mysql_query($SQLSTR)==0) { echo "您所上傳的檔案已儲存進入資料庫<img src=\"showpic.php?filename=" . $_FILES["upfile"]["name"] . "\">"; } else { echo "您所上傳的檔案無法儲存進入資料庫"; } } else { echo "圖片上傳失敗"; } echo "</BLOCKQUOTE>"; ?> <HR></BODY></HTML> <? $dbnum=mysql_connect("localhost","root",""); //選取資料庫 mysql_select_db("pic"); //組合查詢字串 $SQLSTR="select filepic,filetype from myimage where filename='" . $_REQUEST["filename"] . "'"; // $cur=mysql_query($SQLSTR); //取出資料 $data=mysql_fetch_array( $cur ); //設定網頁資料格式 header("Content-Type: $data[1]"); // 輸出圖片資料 echo base64_decode($data[0]); ?> 可以請大家幫我看看要修改哪裡嗎?? 很不好意思 我知道有點長....~"~ 麻煩囉!!拜託拜託~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.143.229.74
iversonjimmy:我剛剛試著上傳500多kb的 可以顯示出來耶 ~"~ 06/02 23:44
iversonjimmy:為什麼100多kb的顯示不出來阿 ~"~ 拜託幫我解答囉!! 06/02 23:45
aej:應該和檔案大小無關!是用jpg檔嗎?我以前有碰過上傳時jpg變大寫 06/03 12:38
aej:所以顯示不出來,後來就重新更名再上傳就成功了(php大小寫不同 06/03 12:38
iversonjimmy:是JPG檔沒錯 我試看看和大小寫有沒有關係~ 謝謝你喔! 06/04 00:50