[請益] move_uploaded_file 失敗

看板PHP作者 (我 天蠍)時間12年前 (2013/02/23 12:23), 編輯推噓0(0021)
留言21則, 6人參與, 最新討論串1/2 (看更多)
錯誤訊息如連結所示 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

02/23 12:32, , 1F
別用中文
02/23 12:32, 1F

02/23 13:07, , 2F
檔名問題....
02/23 13:07, 2F

02/23 13:29, , 3F
xp 應該還是acsii, 所以走big5, 我想你程式大概用utf-8,爆
02/23 13:29, 3F
感謝以上幾位大大的回應 我有google到一篇文章說 utf-8 編碼網頁無法在 big5 系統正確處理中文檔名, 原因在於 move_uploaded_file() 不能處理 utf-8 中文編碼, 需利用 iconv() 函數作轉碼 我改了之後,也確實能用了。 但我又想到 1.utf8網頁上傳中文檔出現錯誤的這個問題,也同樣會發生在Linux上嗎? 2.使用iconv是治標 還是 治本 的方法呢? 如果是治標,那治本的方法是什麼? ※ 編輯: jscorpio1 來自: 140.120.62.170 (02/23 14:16)

02/23 15:28, , 4F
基本上是看你的server系統用的是微軟系列還是linux系列
02/23 15:28, 4F

02/23 15:31, , 5F
原po的問題在於說php將檔案丟到指定位置時,因為目的檔名的
02/23 15:31, 5F

02/23 15:31, , 6F
編碼是utf8,系統無法解析,才會錯誤,因此才需要將檔名
02/23 15:31, 6F

02/23 15:32, , 7F
iconv 至 big5 才能將檔案移動到正確的位置上
02/23 15:32, 7F

02/23 15:33, , 8F
由於linux的編碼預設就是utf8,基本上不會有這個問題出現
02/23 15:33, 8F

02/23 15:37, , 9F
當然,也要取決於你的網頁編碼用的也要是utf8就是了 :)
02/23 15:37, 9F

02/23 17:45, , 10F
微軟系統是指Win Server也是嗎?還是單指WinXP/Win7?
02/23 17:45, 10F

02/23 18:07, , 11F
win vista+好像就是 utf-8 了
02/23 18:07, 11F

02/23 18:08, , 12F
不過不要用特殊符號(包涵中文字)還是正途
02/23 18:08, 12F

02/23 20:24, , 13F
1.原檔名放資料庫,檔名改成編號
02/23 20:24, 13F

02/23 20:24, , 14F
2. 丟掉windows
02/23 20:24, 14F

02/23 20:25, , 15F
不是windows版本的問題,是windows api分成兩套
02/23 20:25, 15F

02/23 20:25, , 16F
PHP用的那套讀出來會是big5
02/23 20:25, 16F

02/23 20:26, , 17F
用iconv不是個完美的方案,檔名有其他語言或有UAO就炸了
02/23 20:26, 17F

02/23 23:09, , 18F
可以請教樓上大大給個完整的說明嗎@@之前曾經為了檔案系統編
02/23 23:09, 18F

02/23 23:09, , 19F
碼搞的想撞牆,所以想跟大大學習一番 :)
02/23 23:09, 19F

02/23 23:10, , 20F
教學
02/23 23:10, 20F

02/23 23:10, , 21F
拍謝是想更新第一句說的話
02/23 23:10, 21F
文章代碼(AID): #1HA4GiMs (PHP)
文章代碼(AID): #1HA4GiMs (PHP)