[請益] 關於檔案上傳

看板PHP作者時間18年前 (2008/01/14 02:34), 編輯推噓2(207)
留言9則, 5人參與, 最新討論串1/1
小弟寫了一個檔案上傳的程式,可以成功的上傳到資料夾 在資料夾裡面看檔案也都是正確,而且也跟上傳的檔案是一樣的 但是如果透過apache下載下來,檔案就壞掉了,請問這問題是出在哪呢? 我使用的環境是AppServ 2.5.9 + windows XP (因為要用mysql跟apache又偷懶不想分開灌...^^;) ===還是貼code好了,寫的很爛高手別鞭太用力>_< <?php include "filesize.php"; $file_name = $_COOKIE["std_team"]; $file_size = $_FILES["up_file"]["size"]; $uploader_dir = "./files/"; $old_filename = $_FILES["up_file"]["name"]; $ext = strrchr($old_filename, '.'); $newname = "team".$file_name.$ext; $uploader_file = $uploader_dir .$newname; $md5ex = md5($old_filename); if (move_uploaded_file($_FILES['up_file']['tmp_name'] , $uploader_file)){ $up_date = time();//取得上傳完成時間 $link = mysql_connect("localhost","orz","1234");//連資料庫 if (!$link){ die("連結失敗"); } $db_selected = mysql_select_db("project",$link); if (!$db_selected){ die("開啟資料庫失敗"); } $sql = "update team set uploaded = '1' , up_time = '$up_date' , file_name = '$uploader_dir$newname' , md5 = '$md5ex' , file_size = '$file_size' where team = '$file_name'"; $result = mysql_query($sql,$link); if (!$result){ echo $htmlhd; die("執行SQL失敗"); echo $htmlft; } mysql_close($link);//關資料庫 echo '<head><meta http-equiv="content-type" content="text/html;charset=utf-8"></head><center><table border=0>'; echo "<tr>上傳成功</tr>"; echo "<tr>檔案大小:".FormatByte($file_size)."</tr>"; echo "<tr>MD5驗證:".$md5ex."</tr>"; echo "<tr><a href=".$uploader_dir.$newname.">檢視檔案</a>"; echo "<tr><a href= javascript:history.back()>回上一頁</a></tr>"; echo "</table></center>"; } else{ echo "上傳失敗(".$_FILES["up_file"]["error"].")"; } ?> ==filesize.php <?php function FormatByte($file_size){ if($file_size == 0){ $format = ""; } else if($file_size <= 1024){ $format = $file_size."B"; } else if($file_size <= (1024*1024)){ $format = sprintf ("%dkB",($file_size/1024)); } else if($file_size <= (10*1024*1024)){ $format = sprintf ("%.2fMB",($file_size/(1024*1024))); } else{ $format = $file_size."B"; } return $format; } ?> -- ◤◢ ◤ ◥ o ├─┤ o ◥ ◢◣◥◤◢ │ │ ╲╱ ◢ ◤◢ ◣ ◢ fishhzy123ψ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.134.15.57

01/14 02:54, , 1F
壞掉是指...? 上傳後自己到上傳的資料夾開看看。
01/14 02:54, 1F

01/14 02:57, , 2F
別用中文檔名,除非你用程式處理好下載的方式。
01/14 02:57, 2F

01/14 15:02, , 3F
就是下載下來的檔案不能開 我有用程式處理更名成英文
01/14 15:02, 3F

01/14 15:16, , 4F
檔案超過 2M?
01/14 15:16, 4F

01/14 15:53, , 5F
就算只有幾k的也會 ~_~
01/14 15:53, 5F

01/14 18:52, , 6F
所謂不能開是指你的WINDOWS不知道如何處理你下載的檔案嗎?
01/14 18:52, 6F

01/14 18:53, , 7F
副檔名是什麼?你處理副檔名的方式對嗎?
01/14 18:53, 7F

01/14 18:53, , 8F
中文檔名可以用mb_convert_encoding()處理中文檔名。
01/14 18:53, 8F
※ 編輯: yohko 來自: 220.134.15.57 (01/14 23:44) ※ 編輯: yohko 來自: 220.134.15.57 (01/15 02:13)

01/15 21:39, , 9F
檔案跟下載後的檔案拿來比較看改變了什麼部份試試
01/15 21:39, 9F
文章代碼(AID): #17YbciAx (PHP)
文章代碼(AID): #17YbciAx (PHP)