Comment résoudre le problème du nom de fichier tronqué obtenu par php

WJ
Libérer: 2023-03-01 14:22:01
original
3721 Les gens l'ont consulté

Comment résoudre le problème du nom de fichier tronqué obtenu par php

Comment résoudre le problème des noms de fichiers tronqués obtenus par php ?

Je pense que de nombreux amis rencontreront un tel problème lors du développement de la fonction de téléchargement de PHP encodé en UTF8, c'est-à-dire que lors du téléchargement d'un fichier avec un nom de fichier chinois, le nom du fichier deviendra tronqué. en fait, vous pouvez utiliser la fonction iconv pour ré-encoder le nom du fichier afin de résoudre le problème

Le fichier PHP utilise l'encodage UTF-8 Si vous avez bien deviné, APACHE devrait utiliser GBK pour le traitement. Après avoir réfléchi à ce problème, je suis allé chercher des tutoriels pertinents et j'ai simplement trouvé la fonction iconv.

Prototype de fonction :string iconv ( string in_charset, string out_charset, string str )
Exemple d'utilisation :$content = iconv(“GBK”, “UTF-8”, $content);
La fonction de cet exemple est de convertir $content de l'encodage GBK en UTF-8.

Le code clé pour le problème tronqué :
Copiez le code Le code est le suivant :

$name=iconv("UTF-8","gb2312", $name);
Copier après la connexion

En plus de résoudre le problème des caractères chinois tronqués dans les fichiers téléchargés, nous pouvons renommez également les fichiers téléchargés.
Exemple
Copiez le code comme suit :

$sFileName = “sda.php”; $sOriginalFileName = $sFileName; $sExtension = s str($sFileName, (strrpos($sFileName, ‘.’) + 1));//找到扩展名 $sExtension = strtolower($sExtension); $sFileName = date(“YmdHis”).rand(100, 200).”.”.$sExtension; //这样就是我们的新文件名了,全数字的不会有乱码了哦。
Copier après la connexion

Voici quelques ajouts :
Solution au nom de fichier chinois tronqué dans le téléchargement php
Copiez le code comme suit :

$filepath=”upload/”; $name=$filepath.$_FILES[“upfile”][“name”]; while(file_exists($name)){ $temp=explode(“.”,$name);//分割字符串 $name=$temp[0].”0″.”.”.$temp[1];//主文件名后面加0 }
Copier après la connexion


Copiez le code comme suit :

//iconv() la fonction est la clé

if(move_uploaded_file($_FILES[“upfile”][“tmp_name”],iconv(“UTF-8″,”gb2312”,$name))){//处理…}
Copier après la connexion


Mon encodage PHP est UTF- 8, la raison peut être C'est parce que le système d'exploitation est GBK !
Remarque : Mon serveur est Windows XP, Apache, et on estime que le jeu de caractères XP est GBK. Étant donné que mon code PHP est enregistré au format UTF-8, des caractères tronqués apparaîtront lors du nom du nom de fichier. Vous pouvez donc utiliser la fonction iconv() pour convertir le nom de fichier au format UTF-8 d'origine au format gbk.
Solution au nom de fichier chinois tronqué téléchargé par l'encodage php utf8
Je pense que de nombreux amis rencontreront un tel problème lorsqu'ils développeront la fonction de téléchargement de php encodé en utf8, c'est-à-dire lors du téléchargement d'un fichier avec un nom de fichier chinois , Le nom du fichier deviendra tronqué. Nous pouvons utiliser la fonction iconv pour réencoder le nom du fichier et résoudre le problème.
Copiez le code Le code est le suivant :

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); } } }
Copier après la connexion

Références associées :tutoriel php

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
php
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!