看板 PHP 關於我們 聯絡資訊
上傳中文檔名的檔案似乎要先用iconv()轉碼才能夠上傳: move_uploaded_file($_FILES["fileupload"]["tmp_name"], "../upload/".iconv("utf-8","big5",$_FILES["fileupload"]["name"])) 然而,要刪除上傳的中文檔案也是要再轉碼一次: unlink("../upload/".iconv("utf-8","big5",$_GET['upname'])) echo $_GET['upname']."<p>"; //顯示結果為正常檔名 echo iconv("utf-8","big5",$_GET['upname']); //顯示結果為亂碼 在此不禁有個疑問,以iconv()編碼過的檔名在資料夾開啟來都顯示正常, 這是因為系統本身會做編碼判讀的原因嗎~? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 163.32.57.244
nidgetgod:這是因為 OS 和 PHP 編碼不同的關係 12/03 17:56
Joxz:嗯..瞭解了~感謝~:) 12/04 01:38
finalodyssey:比較好的方式其實是分離...缺點少優點多 12/04 14:31
finalodyssey:原始檔名可以用unix時間戳記來命名 12/04 14:32
finalodyssey:然後將檔案名稱的檔名和副檔名分離後存於資料庫 12/04 14:33
finalodyssey:要下載時再取出來合成成原始檔名 12/04 14:33
finalodyssey:不過最主要還是看目的為何吧,要安全的話做法比較繁 12/04 14:37