[爆卦]Move_uploaded_file是什麼?優點缺點精華區懶人包

為什麼這篇Move_uploaded_file鄉民發文收入到精華區:因為在Move_uploaded_file這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者jscorpio1 (我 天蠍)看板PHP標題[請益] move_uploaded_file ...


錯誤訊息如連結所示 http://ppt.cc/CTLy

部份程式碼如下
if($_FILES["myfile"]["error"] == UPLOAD_ERROR_OK)
{
$file=$_FILES["myfile"]["name"];
$upload_file = $upload_dir . $file;
echo "file is $file<br />";
echo "upload_file is $upload_file<br />";

$tmpname = $_FILES["myfile"]["tmp_name"];
echo "tmp_name is $tmpname<br />";

move_uploaded_file($_FILES["myfile"]["tmp_name"],$upload_file);
}
else echo $_FILES["myfile"]["error"];

作業系統是WinXP
網站是Appserv

實在是不知道到底哪裡有問題??

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.120.62.170
kerash:別用中文 02/23 12:32
LaPass:檔名問題.... 02/23 13:07
mervynW:xp 應該還是acsii, 所以走big5, 我想你程式大概用utf-8,爆 02/23 13:29

感謝以上幾位大大的回應
我有google到一篇文章說
utf-8 編碼網頁無法在 big5 系統正確處理中文檔名,
原因在於 move_uploaded_file() 不能處理 utf-8 中文編碼,
需利用 iconv() 函數作轉碼

我改了之後,也確實能用了。

但我又想到
1.utf8網頁上傳中文檔出現錯誤的這個問題,也同樣會發生在Linux上嗎?
2.使用iconv是治標 還是 治本 的方法呢?
如果是治標,那治本的方法是什麼?
※ 編輯: jscorpio1 來自: 140.120.62.170 (02/23 14:16)
Bambe:基本上是看你的server系統用的是微軟系列還是linux系列 02/23 15:28
Bambe:原po的問題在於說php將檔案丟到指定位置時,因為目的檔名的 02/23 15:31
Bambe:編碼是utf8,系統無法解析,才會錯誤,因此才需要將檔名 02/23 15:31
Bambe:iconv 至 big5 才能將檔案移動到正確的位置上 02/23 15:32
Bambe:由於linux的編碼預設就是utf8,基本上不會有這個問題出現 02/23 15:33
Bambe:當然,也要取決於你的網頁編碼用的也要是utf8就是了 :) 02/23 15:37
jscorpio1:微軟系統是指Win Server也是嗎?還是單指WinXP/Win7? 02/23 17:45
mervynW:win vista+好像就是 utf-8 了 02/23 18:07
mervynW:不過不要用特殊符號(包涵中文字)還是正途 02/23 18:08
buganini:1.原檔名放資料庫,檔名改成編號 02/23 20:24
buganini:2. 丟掉windows 02/23 20:24
buganini:不是windows版本的問題,是windows api分成兩套 02/23 20:25
buganini:PHP用的那套讀出來會是big5 02/23 20:25
buganini:用iconv不是個完美的方案,檔名有其他語言或有UAO就炸了 02/23 20:26
Bambe:可以請教樓上大大給個完整的說明嗎@@之前曾經為了檔案系統編 02/23 23:09
Bambe:碼搞的想撞牆,所以想跟大大學習一番 :) 02/23 23:09
Bambe: 教學 02/23 23:10
Bambe: 拍謝是想更新第一句說的話 02/23 23:10

你可能也想看看

搜尋相關網站