
本文操作环境:Windows7系统,PHP7.1版,Dell G3电脑。
如何解决php文件中文名乱码问题?
php上传文件中文文件名乱码的解决方法
文件上传是我们在处理表单提交时候最常用的功能之一,今天写了一个小小的demo,如下:
先看结构:

html为表单提交的页面,php为处理表单的文件,upload为上传文件所放的位置
html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>文件上传</title>
</head>
<body>
<form action="file_updata.php" method="post" enctype="multipart/form-data">
<label for="files">文件上传</label>
<input type="file" id="files" name="file">
<br/>
<input type="submit" name="submits" value="提交">
</form>
</body>
</html>登录后复制php:
$file = $_FILES["file"];
if ($file["error"] > 0) {
echo "错误:" . $file["error"];
} else {
echo "文件名称:" . $file["name"] . "</br>";
echo "文件类型:" . $file["type"] . "</br>";
echo "文件大小:" . ($file["size"] / 1024) . "K</br>";
echo "文件临时存储的位置:" . $file["tmp_name"] . "</br>";
//保存上传的文件
if (file_exists("upload" . $file["name"])) {
echo $file["name"] . "文件已经存在";
} else {
//如果目录不存在则将该文件上传
move_uploaded_file($file['tmp_name'], "upload/" . $file["name"]);
echo '文件上传成功!';
}
}登录后复制我上传了个.txt的文件,如下:

执行:

可以看到十分的顺利,那看看结果吧 :

此时上传的文件是我们想要的,但是却出现了乱码的情况,嗯,好,那就来解决吧,:
首先,在php文件的头部加这么一段代码:
header("Content-type: text/html; charset=utf-8");登录后复制然后定义一个变量:
$name = iconv('utf-8','gb2312',"upload/".$file["name"]);登录后复制好,那我们看看整个的PHP页面:
header("Content-type: text/html; charset=utf-8");
$file = $_FILES["file"];
if($file["error"]>0){
echo "错误:".$file["error"];
}else{
$name = iconv('utf-8','gb2312',"upload/".$file["name"]);
echo "文件名称:".$file["name"]."</br>";
echo "文件类型:".$file["type"]."</br>";
echo "文件大小:".($file["size"]/1024)."K</br>";
echo "文件临时存储的位置:".$file["tmp_name"]."</br>";
//保存上传的文件
if(file_exists("upload".$file["name"])){
echo $file["name"]."文件已经存在";
}else{
//如果目录不存在则将该文件上传
if(move_uploaded_file($file['tmp_name'],$name)){
// move_uploaded_file($file['tmp_name'],"upload/".$file["name"]);
echo '文件上传成功!';
echo '图片信息:';
print_r($file);
}
}登录后复制运行:

完美
推荐学习:《PHP视频教程》
以上就是如何解决php文件中文名乱码问题的详细内容,更多请关注靠谱客其它相关文章!

最后
以上就是微笑朋友最近收集整理的关于如何解决php文件中文名乱码问题的全部内容,更多相关如何解决php文件中文名乱码问题内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复