国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

php上傳文件中文文件名亂碼的解決方法

2024-05-04 23:19:14
字體:
來源:轉載
供稿:網友

可能會有不少朋友碰到一些問題就是上傳文件時如果是英文倒好原文名不會有問題,如果是中文可能就會出現亂碼了,今天我來給大家總結一下導致亂碼php上傳文件中文文件名亂碼的原因與解決辦法吧。

這幾天在windows下安裝了XAMPP,準備初步學習一下php的相關內容。這幾天接觸到了php上傳文件,但是出現了一個郁悶問題,我準備上傳一個excel文件,但是如果文件名是中文名就會報錯。

一來二去很是郁悶,后來仔細想了想應該是文件編碼的問題,我寫的php文件使用的是UTF-8編碼,如果沒有猜錯APACHE處理用的應該是GBK(當然現在我無法確定,希望高手給與指教)。想明白了這個問題,就去查找相關的教程了,索性找到了iconv這個函數。

函數原型:string iconv ( string in_charset, string out_charset, string str )

使用例子:$content = iconv("GBK", "UTF-8", $content);

這個例子的作用就是將$content從GBK轉換成UTF-8編碼。

亂碼問題關鍵代碼:

復制代碼 代碼如下:


$name=iconv("UTF-8","gb2312", $name);
move_uploaded_file($tmpname, $this->final_file_path);
$name=iconv("gb2312","UTF-8", $name);

除了這樣來解決上傳文件中文亂碼問題,我們還可以把上傳文件重新命名即可。

復制代碼 代碼如下:


$sFileName = "sda.php";
$sOriginalFileName = $sFileName;
$sExtension = s str($sFileName, (strrpos($sFileName, '.') + 1));//找到擴展名
$sExtension = strtolower($sExtension);
$sFileName = date("YmdHis").rand(100, 200).".".$sExtension; //這樣就是我們的新文件名了,全數字的不會有亂碼了哦。



以下是一些補充:

php上傳中文文件名亂碼解決方案

復制代碼 代碼如下:


 $filepath="upload/";
 $name=$filepath.$_FILES["upfile"]["name"];
 while(file_exists($name)){
   $temp=explode(".",$name);//分割字符串
    $name=$temp[0]."0".".".$temp[1];//主文件名后面加0
 }

復制代碼 代碼如下:


//iconv()函數是關鍵
  if(move_uploaded_file($_FILES["upfile"]["tmp_name"],iconv("UTF-8","gb2312",$name))){//處理...}

我的PHP編碼是UTF-8,其中原因可能是因為操作系統是GBK的原因!

注意:我的服務器是windows xp、apache,估計xp字符集是gbk。因為我的php代碼保存為utf-8格式的,在給文件名命名時會出現亂碼的情況,所以可以用iconv()函數將原本的utf-8格式的文件名轉換為gbk格式的。

php utf8編碼 上傳中文文件名出現亂碼的解決方法

想必很多朋友在進行utf8編碼的php開發上傳功能的時候,都會遇到這樣的一個問題,就是上傳中文文件名的文件時,文件名會變成亂碼,我們可以用iconv函數對文件名進行重新編碼就解決問題了。

復制代碼 代碼如下:


<?php
header("Content-Type:text/html;charset=utf-8");
$submit = $_POST['submit'];
if(isset($submit) && trim($submit) != ''){
$file = $_FILES['file'];
if(isset($file['tmp_name'])){
     $name = iconv('utf-8','gb2312',$file['name']); //利用Iconv函數對文件名進行重新編碼
     if(move_uploaded_file($file['tmp_name'],$name)){
    echo '文件上傳成功!';
    echo '圖片信息:';
    print_r($file);
   }
}
}
?>

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 昌宁县| 无为县| 德令哈市| 克山县| 潮州市| 武清区| 莱西市| 全椒县| 柯坪县| 马鞍山市| 深泽县| 利川市| 麟游县| 安丘市| 凤阳县| 平遥县| 玉门市| 白朗县| 得荣县| 高淳县| 天津市| 屏山县| 株洲县| 龙江县| 桃源县| 靖州| 宝清县| 浮梁县| 昭通市| 合阳县| 教育| 中阳县| 长岭县| 波密县| 福泉市| 金沙县| 阿拉善左旗| 自治县| 柘城县| 怀宁县| 秭归县|