文件上传是我们在处理表单提交时候最常用的功能之一,今天写了一个小小的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上传文件中文文件名乱码的解决方法的更多相关文章

  1. 上传文件中文文件名乱码的解决方法以及iconv函数的使用

    http://www.jb51.net/article/14530.htm 一般客户端是什么格式就展示什么格式,比如浏览器的UTF-8,windows的GBK

  2. WebUploader 上传插件结合bootstrap的模态框使用时选择上传文件按钮无效问题的解决方法

    由于种种原因(工作忙,要锻炼健身,要看书,要学习其他兴趣爱好,谈恋爱等),博客已经好久没有更新,为这个内心一直感觉很愧疚,今天开始决定继续更新博客,每周至少一篇,最多不限篇幅. 今天说一下,下午在工作 ...

  3. asp.net限制了上传文件大小为..M,解决方法

    asp.net限制了上传文件大小为4M,在:在web.config里加下面一句,加在<System.web></System.web>之间如下:<system.web&g ...

  4. ubuntu14.04中解压缩window中的zip文件,文件名乱码的解决方法

    在windows上压缩的文件,是以系统默认编码中文来压缩文件.由于zip文件中没有声明其编码,所以linux上的unzip一般以默认编码解压,中文文件名会出现乱码. 通过unzip行命令解压,指定字符 ...

  5. nginx 服务器在上传文件出现413代码的解决方法

    打开nginx主配置文件nginx.conf 找到http{}段,添加client_max_body_size 20m;

  6. Linux - xshell上传文件报错乱码

    xshell上传文件报错乱码,解决方法 rz -be 回车 下载sz  filename

  7. restTemplate.postForObject上传文件中文乱码(???.xls)

    一.问题描述 项目中, 使用restTemplate上传文件时, 文件名中文乱码, 一串问号, 源文件名为: 测试中文乱码哦哦哦.zip, 通过restTemplate.postForObject调用 ...

  8. 用c#读取文件内容中文是乱码的解决方法:

    用c#读取文件内容中文是乱码的解决方法: //方法1: StreamReader din = new StreamReader(@"C:\1.txt", System.Text.E ...

  9. springBoot上传文件时MultipartFile报空问题解决方法

    springBoot上传文件时MultipartFile报空问题解决方法 1.问题描述: 之前用spring MVC,转成spring boot之后发现上传不能用.网上参考说是spring boot已 ...

随机推荐

  1. Tomcat Connector三种执行模式(BIO, NIO, APR)的比較和优化

    Tomcat Connector的三种不同的执行模式性能相差非常大,有人測试过的结果例如以下: 这三种模式的不同之处例如以下: BIO: 一个线程处理一个请求.缺点:并发量高时,线程数较多,浪费资源. ...

  2. js 函数参数 arguments[0]

    function box() {            return arguments[0] + '|' + arguments[1];                    }        al ...

  3. 爬取千万淘宝商品的python脚本

    import time import leveldb from urllib.parse import quote_plus import re import json import itertool ...

  4. DHCP服务器-DNS服务器-Samba服务器

    DHCP服务器 DHCP在管理网络配置方面很有作用,特别是一个当一个网络的规模较大时,使用DHCP可极大的减少 管理员的工作量. DHCP分为两部分:服务端和客户端.服务端负责集中管理可动态分配的IP ...

  5. maven打包源码<转>

    Plugin: http://maven.apache.org/plugins/maven-source-plugin/ The Source Plugin has five goals: sourc ...

  6. HTML——动画效果回到顶层(小火箭)

    一.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www. ...

  7. 课后作业——用lastIndexOf判断是否是字符串的最后一位

    package test; public class Testlianxi { public static void main(String[] args) { //判断fgh是否是字符串的最后一位 ...

  8. Tomcat (1) —— Mac下配置Tomcat Https/SSL

    Tomcat (1) -- Mac下配置Tomcat Https/SSL tomcat版本: tomcat-8.0.29 jdk版本: jdk1.8.0_65 参考来源: SSL/TLS Config ...

  9. 经典SQL回顾之晋级篇

    上篇博文在说SQL基础的时候,有一个地方有点误导大家,文中说到SQL 中的substring()和C#中的substring()相同,这有点歧义.基本原理虽然相同,但是有一点很不一样,就是C#中索引是 ...

  10. ddddddd

    尊敬的老师们: 我在各方面表现优异.在学习方面,始终将学习放在首位,学习成绩名列前茅,在以往考试中从没有挂科记录,并积极参加校内.校外比赛,且多次获奖:在思想方面,积极向党组织靠拢,一直以一名优秀党员 ...