Maison > Article > développement back-end > Comment résoudre le problème des caractères chinois tronqués lors du téléchargement de fichiers PHP
Solution aux caractères chinois tronqués lors du téléchargement de fichiers PHP : ouvrez d'abord le fichier PHP correspondant ; puis utilisez la méthode "iconv("UTF-8", "gbk",$name)" pour forcer le transcodage du nom du fichier. . Convertissez simplement UTF8 en gbk.
Recommandé : "Tutoriel vidéo PHP"
À propos des fichiers de téléchargement PHP et des noms chinois tronqués
Dans la page HTML front-end, le formulaire est le suivant
Upload.html
<!doctype html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> </head> <body> <form action="upload.php" method="post" enctype="multipart/form-data"> <input type="hidden" name="MAX_FILE_SIZE" value="2621114"> <input type="file" required name="upload_file"> <input type="submit" value="提交"> </form> </body> </html>
Note
enctype="multipart/form- data" doit être écrit, cela sert à indiquer au navigateur ce que vous téléchargez
02ad864ff822bc5116f29be2aa40bace Valeur maximale du fichier de paramètres frontaux
Backend upload.php
<?php if (is_uploaded_file($_FILES['upload_file']['tmp_name'])){ $upfile = $_FILES['upload_file']; //print_r($upfile); $name = $upfile['name'];//获取文件名 $type = $upfile['type'];//文件类型 $size = $upfile['size'];//文件大小 $tmp_name = $upfile['tmp_name'];//服务器存储的临时名称 $error = $upfile['error'];//错误信息 switch ($type){ case 'image/png': $ok=1; break; case 'image/jpg': $ok=1; break; case 'image/jif': $ok=1; break; case 'image/jpeg': $ok=1; break; } if ($ok && $error == 0){ move_uploaded_file($tmp_name,'./upload/'.iconv("UTF-8", "gbk",$name)); echo '文件上传成功'; }else{ echo '文件上传失败'; } }
Lors du téléchargement, PHP reçoit un tableau d'informations sur le fichier, qui se trouvent dans le tableau super global $_FILES.
Par exemple : si le nom de la zone de saisie du fichier dans le formulaire est upload_file, alors toutes les informations sur le fichier sont incluses dans le tableau $_FILES['upload_file'].
is_uploaded_file — Détermine si le fichier a été téléchargé via HTTP POST
move_uploaded_file — Déplace le fichier téléchargé vers un nouvel emplacement
bool move_uploaded_file ( string $filename , string $destination )
Lorsque vous rencontrez un nom de fichier chinois, corrigez le fichier name est obligé de transcoder iconv("UTF-8", "gbk",$name) pour convertir UTF8 en gbk, afin qu'il n'y ait pas de caractères tronqués
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!