move_uploaded_file上傳 中文文件;下載文件,失敗的解決方法

      //解決中文編碼問題,將utf8 編碼轉換成gb2321編碼

     //紅色字體爲文件名

      $file_name=iconv("UTF-8", "gb2312", $_FILES["file"]["name"]);


 函數解釋:

 (

    string iconv ( string $in_charset , string $out_charset , string $str )

       將字符串 str 從 in_charset 轉換編碼到 out_charset



      $file_path="video\/solidworks\/" .$file_name;//存儲路徑,我使用的是相對路徑


      move_uploaded_file($_FILES["file"]["tmp_name"],$file_path );


在下載中文文件名的時候也出現了同樣的問題,但我發現 上述方案有點解決不了

我的源碼是這樣的:


$file_name=$_POST['file_name'];
//$file_name=iconv("UTF-8", "gb2312",$file_name);
$con=mysql_connect('localhost','root','123456');
if(!$con){
  echo '鏈接失敗';
}  
//echo $file_name;//顯示亂碼
mysql_select_db("table2",$con);
mysql_query("set names utf8");
$result1=mysql_query("SELECT * FROM video where name='".$file_name."'");
while($row = mysql_fetch_array($result1)){
$file_path=$row['video_path'];

//解決中文編碼問題
$file_path=iconv("UTF-8", "gb2312",$file_path);
}

後來我將紅色部分的代碼註釋掉,拷貝到藍色部分,,結果成功了,雖然解決了,但感覺還是有點問題,數據庫中存的路徑是中文,把從數據庫中取出來的數據進行了編碼轉換;

  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章