Home >Backend Development >PHP Problem >What should I do if the file name uploaded by php is garbled?
Solution to the garbled file name in php upload: First open the "Upload.html" file; then add the statement "enctype="multipart/form-data""; then open the "upload.php" file; and finally correct The file name can be forced to be transcoded.
Recommended: "PHP Video Tutorial"
PHP upload files and Chinese names with garbled characters
About PHP file upload
In the front-end HTML page, the form is as follows
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" must be written. This tells the browser what you are uploading
02ad864ff822bc5116f29be2aa40bace The front-end setting file is large Maximum value
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 '文件上传失败'; } }
When uploading, PHP receives an array of information about the file. This information can be in the super global array $_FILES turn up.
For example: If the name of the file input box in the form is upload_file, then all information about the file is included in the array $_FILES['upload_file'].
is_uploaded_file — Determine whether the file is uploaded through HTTP POST
move_uploaded_file — Move the uploaded file to a new location
bool move_uploaded_file ( string $filename , string $destination )
When encountering a Chinese file name, correct The file name is forced to transcode iconv("UTF-8", "gbk",$name) to convert UTF8 to gbk, so that there will be no garbled characters
The above is the detailed content of What should I do if the file name uploaded by php is garbled?. For more information, please follow other related articles on the PHP Chinese website!