查看完整版本: 上傳中文檔案到伺服器問題
頁: [1]

C13Cgold 發表於 2015-11-18 04:35 AM

上傳中文檔案到伺服器問題

本帖最後由 C13Cgold 於 2015-11-18 04:51 AM 編輯

以下是選擇檔案頁面
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01">
<html>
<head>
<meta charset="utf-8">
<title>上傳檔案</title>
</head>

<body>
<form action="upload.php" method="post" enctype="multipart/form-data" name="form1" id="form1">
  <p align="center">請選擇欲上傳之相片檔案:
    <label>
      <input type="file" name="file" id="file" />
    </label>
    <label>
      <input type="submit" name="button" id="button" value="送出" />
    </label>
  </p>
</body>
</html>以下是各種上傳的頁面upload.php因為伊莉發文限制,不讓我直接po code,要我以附件的方式,所以我再提供網址讓大家能下載觀看三種upload.php:
onedrive.live.com/redir?resid=BA689BCA0766E239!507&authkey=!AGhFTDB_Z2wfop8&ithint=folder%2ctxt

以下是第一種

第一種就是我對move_uploaded_file和各個會用到$_FILES['file']['name']的,都進行了iconv("utf-8", "big5")的轉碼,結果就是上傳的檔案會變成亂碼,然後其他網頁顯示和連結正常。

以下是第二種


第二種是所有的$_FILES['file']['name']都不轉碼,其結果是上傳的檔案正常顯示中文,但是網頁顯示和連結會變成亂碼。


以下是第三種


第三種是我不對move_uploaded_file裡的$_FILES['file']['name']進行轉碼,只對連結和顯示做轉碼,其結果是上傳的檔案和連結和顯示都可以是正常的中文。

我要問的問題是在連結和顯示要進行轉碼,那為什麼在move_uploaded_file裡的$_FILES['file']['name']不用進行轉碼?轉碼反而上傳會變亂碼?


...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div><div></div>

C13Cgold 發表於 2015-11-18 04:48 AM

本帖最後由 C13Cgold 於 2015-11-18 04:50 AM 編輯

因為伊莉發文限制,不讓我直接po code,要我以附件的方式,所以我再提供網址讓大家能下載觀看三種upload.php:
onedrive.live.com/redir?resid=BA689BCA0766E239!507&authkey=!AGhFTDB_Z2wfop8&ithint=folder%2ctxt
在onedrive前面補上https://

alextang1030 發表於 2015-11-18 02:28 PM

第一種感覺有點像,你本身上傳的檔案不是UTF-8,所以你轉碼會出問題,因為你硬是把一種不知道甚麼碼當成UTF-8來轉BIG5

第二種,我不太知道,但也有可能是你瀏覽器的顯示編碼對不上
頁: [1]