作者iversonjimmy (還沒想到捏)
看板PHP
標題[請益] 圖片上傳無法顯示全圖
時間Sat Jun 2 23:35:54 2007
想請問大家 關於檔案上傳圖片功能
我是採用存入資料庫 利用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