Rumah php教程 php手册 php上传文件中文文件名乱码的解决方法

php上传文件中文文件名乱码的解决方法

Jun 06, 2016 pm 08:26 PM
Nama fail Cina Watak bercelaru

想必很多朋友在进行utf8编码的php开发上传功能的时候,都会遇到这样的一个问题,就是上传中文文件名的文件时,文件名会变成乱码,其实我们可以用iconv函数对文件

可能会有不少朋友碰到一些问题就是上传文件时如果是英文倒好原文名不会有问题,如果是中文可能就会出现乱码了,今天我来给大家总结一下导致乱码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函数对文件名进行重新编码就解决问题了。

复制代码 代码如下:


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);
   }
}
}
?>

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

Repo: Cara menghidupkan semula rakan sepasukan
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk menyelesaikan nombor halaman perkataan yang bercelaru Bagaimana untuk menyelesaikan nombor halaman perkataan yang bercelaru Jun 25, 2023 pm 03:23 PM

Penyelesaian kepada nombor halaman perkataan yang bercelaru: 1. Buka dokumen perkataan dan klik pilihan "Fail" di sudut kiri atas 2. Pilih pilihan "Lagi", dan kemudian klik butang "Pilihan" 3. Pilih "Lanjutan"; dalam pilihan perkataan; 4. Cari "Tunjukkan kod medan dan bukannya nilai medan" dalam "Tunjukkan kandungan dokumen", alih keluar semak di hadapan, dan klik OK untuk kembali ke halaman utama.

Bagaimana untuk menyelesaikan aksara Cina yang kacau dalam Linux Bagaimana untuk menyelesaikan aksara Cina yang kacau dalam Linux Feb 21, 2024 am 10:48 AM

Masalah bercelaru Cina Linux adalah masalah biasa apabila menggunakan set aksara Cina dan pengekodan. Watak bercelaru mungkin disebabkan oleh tetapan pengekodan fail yang salah, tempat sistem tidak dipasang atau ditetapkan, dan ralat konfigurasi paparan terminal, dsb. Artikel ini akan memperkenalkan beberapa penyelesaian biasa dan memberikan contoh kod khusus. 1. Periksa tetapan pengekodan fail Gunakan arahan fail untuk melihat pengekodan fail Gunakan perintah fail dalam terminal untuk melihat pengekodan fail: nama fail-fail jika terdapat "charset".

Apa yang perlu dilakukan jika linux tty mempunyai aksara Cina yang kacau Apa yang perlu dilakukan jika linux tty mempunyai aksara Cina yang kacau Mar 16, 2023 am 09:20 AM

Penyelesaian kepada aksara Cina yang kacau dalam Linux tty: 1. Muat turun fon fbterm melalui arahan "sudo apt-get install fbterm" 2. Jalankan arahan "sudo fbterm" 3. Tukar fon dan saiz fon kepada "font-name =Ubuntu Mono font- size=14” sudah memadai.

Bagaimana untuk menyelesaikan kod tomcat startup yang kacau Bagaimana untuk menyelesaikan kod tomcat startup yang kacau Dec 26, 2023 pm 05:21 PM

Penyelesaian untuk permulaan tomcat yang kacau: 1. Ubah suai fail konfigurasi Tomcat 2. Ubah suai bahasa sistem 3. Ubah suai pengekodan tetingkap baris arahan 5. Semak pengekodan projek; fail; 7 , cuba penyelesaian lain. Pengenalan terperinci: 1. Ubah suai fail konfigurasi conf Tomcat, buka direktori conf Tomcat, cari fail "logging.properties", dsb.

Bagaimana untuk menyelesaikan masalah aksara Cina yang kacau dalam Windows 10 Bagaimana untuk menyelesaikan masalah aksara Cina yang kacau dalam Windows 10 Jan 16, 2024 pm 02:21 PM

Dalam sistem Windows 10, aksara bercelaru adalah perkara biasa. Sebab di sebalik ini selalunya ialah sistem pengendalian tidak menyediakan sokongan lalai untuk beberapa set aksara, atau terdapat ralat dalam pilihan set aksara yang ditetapkan. Untuk menetapkan ubat yang betul, kami akan menganalisis prosedur operasi sebenar secara terperinci di bawah. Bagaimana untuk menyelesaikan kod kacau Windows 10 1. Buka tetapan dan cari "Masa dan Bahasa" 2. Kemudian cari "Bahasa" 3. Cari "Urus Tetapan Bahasa" 4. Klik "Tukar Tetapan Wilayah Sistem" di sini 5. Semak seperti yang ditunjukkan dan klik Hanya pastikan.

Bagaimana untuk menyelesaikan masalah watak bercelaru dalam dokumen sistem win11 Bagaimana untuk menyelesaikan masalah watak bercelaru dalam dokumen sistem win11 Jun 29, 2023 pm 06:29 PM

Bagaimana untuk menyelesaikan masalah dokumen teks bercelaru dalam win11? Apabila ramai pengguna menggunakan sistem win11, dokumen teks bercelaru dan tidak dapat dibaca secara normal Ramai rakan tidak tahu bagaimana untuk menyelesaikan masalah ini. Sebenarnya, kaedah ini tidak sukar. Di bawah, editor telah menyusun langkah-langkah untuk menyelesaikan masalah dokumen sistem Windows 11 yang kacau. Langkah-langkah untuk menyelesaikan dokumen sistem Windows 11 yang bercelaru: 1. Mula-mula, buka panel kawalan win11, masukkan panel kawalan dalam kotak carian di bawah, dan klik Cari untuk memasuki panel kawalan. 2. Selepas memasuki panel, cari jam dan kawasan dan klik untuk masuk, kemudian klik pada pilihan kawasan. 3. Selepas memasukkan, klik pada panel pengurusan, dan kemudian klik pada Tukar tetapan wilayah sistem.

Kaedah penyuntingan untuk menyelesaikan masalah aksara bercelaru semasa membuka fail dll Kaedah penyuntingan untuk menyelesaikan masalah aksara bercelaru semasa membuka fail dll Jan 06, 2024 pm 07:53 PM

Apabila ramai pengguna menggunakan komputer, mereka akan mendapati terdapat banyak fail dengan akhiran dll, tetapi ramai pengguna tidak tahu bagaimana untuk membuka fail tersebut Pengguna yang ingin tahu, sila lihat butiran berikut Tutorial~Cara membuka dan edit fail dll: 1. Muat turun perisian yang dipanggil "exescope" dan muat turun dan pasangnya. 2. Kemudian klik kanan fail dll dan pilih "Edit sumber dengan exescope". 3. Kemudian klik "OK" dalam kotak gesaan ralat timbul. 4. Kemudian pada panel kanan, klik tanda "+" di hadapan setiap kumpulan untuk melihat kandungan yang terkandung di dalamnya. 5. Klik pada fail dll yang anda ingin lihat, kemudian klik "Fail" dan pilih "Eksport". 6. Kemudian anda boleh

Selesaikan masalah aksara bercelaru dalam pad nota win11 Selesaikan masalah aksara bercelaru dalam pad nota win11 Jan 05, 2024 pm 03:11 PM

Sesetengah rakan ingin membuka pad nota dan mendapati pad nota win11 mereka bercelaru dan tidak tahu apa yang perlu dilakukan. Sebenarnya, secara amnya kita hanya perlu mengubah suai wilayah dan bahasa. Win11 Notepad bercelaru: Langkah pertama, gunakan fungsi carian, cari dan buka "Panel Kawalan". atas Kad. Langkah keempat ialah mengklik "Tukar Tetapan Serantau Sistem" di bawah Langkah kelima ialah menukar tetapan serantau sistem semasa kepada "Bahasa Cina (Ringkas, China)" dan klik "OK" untuk menyimpan.

See all articles