
PHP上传文件

(2)上传图片 
发布日期:2021-05-07 07:23:53
浏览次数:20
分类:精选文章
本文共 1677 字,大约阅读时间需要 5 分钟。
文章目录
1.首先了解PHP的$_FILES
$_FILES 是一个预定义的数组,用来获取通过 POST 方法上传文件的相关信息。
$_FILES数组内容如下:- $_FILES[‘File’][‘name’] 客户端文件的原名称。
- $_FILES[‘File’][‘type’] 文件的 MIME 类型,需要浏览器提供该信息的支持.
- $_FILES[‘File’][‘size’] 已上传文件的大小,单位为字节。
- $_FILES[‘File’][‘tmp_name’] 文件被上传后在服务端储存的临时文件名,
- $_FILES[‘myFile’][‘error’] 和该文件上传相关的错误代码。
例子:
//接收一个文件,输出$_FILESif ($_SERVER['REQUEST_METHOD'] === 'POST') { var_dump($_FILES);}
2.使用form表单上传
- 主要思想是把 POST 方法上传的临时文件移动到目标目录。
array(5) { // ["name"]=> // string(11) "02.png" // ["type"]=> // string(9) "image/png" // ["tmp_name"]=> // string(27) "C:\Windows\Temp\php1138.tmp" //这个是临时文件 // ["error"]=> // int(0) // ["size"]=> // int(4398) // } if ($avatar['error'] !== UPLOAD_ERR_OK) { // 服务端没有接收到上传的文件 $GLOBALS['message'] = '上传失败'; return; } // 校验类型 图片类型 $allowed_types = array('image/jpeg', 'image/png', 'image/gif'); if (!in_array($avatar['type'], $allowed_types)) { $GLOBALS['message'] = '这是不支持的图片格式'; return; } // 重要思路是将临时文件移动到网站范围之内 $source = $avatar['tmp_name']; // 临时文件 // => 'C:\Windows\Temp\php1138.tmp' $target = './uploads/' . $avatar['name']; // 目标放在哪 // => './uploads/icon-02.png' // 移动的目标路径中文件夹一定是一个已经存在的目录 $moved = move_uploaded_file($source, $target); $GLOBALS['message'] = '上传成功'; if (!$moved) { $GLOBALS['message'] = '上传失败'; return; } // 移动成功}if ($_SERVER['REQUEST_METHOD'] === 'POST') { // 接收文件 使用一个 叫做 $_FILES 超全局成员 //调用函数 upload();}?>文件上传
效果:
(1)上传非图片文件



3.解决上传文件大小限制
- 修改 php.ini 中的 post_max_size 配置,让服务端可以接受更大的请求体体积
- 修改 php.ini 中的 upload_max_filesize 配置,让服务端支持更大的单个上传文件
发表评论
最新留言
逛到本站,mark一下
[***.202.152.39]2025年04月12日 17时24分26秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
如何使用google搜索?
2021-05-09
Redis分布式锁的正确实现方式
2021-05-09
设计模式-抽象工厂模式
2021-05-09
IntelliJ IDEA 中,项目文件右键菜单没有svn选项解决办法
2021-05-09
IDEA 调试Java代码的两个技巧
2021-05-09
Vue 数组和对象更新,但视图未更新,背后的故事
2021-05-09
剑指Offer面试题:9.二进制中1的个数
2021-05-09
《你是在做牛做马还是在做主管》- 读书笔记
2021-05-09
重新温习软件设计之路(4)
2021-05-09
MySQL数据库与python交互
2021-05-09
python如何对字符串进行html转义与反转义?
2021-05-09
开发小白也毫无压力的hexo静态博客建站全攻略 - 躺坑后亲诉心路历程
2021-05-09
golang基础--类型与变量
2021-05-09
.NetCore外国一些高质量博客分享
2021-05-09
解决WebRTC中不同的浏览器之间适配的问题
2021-05-09
深入理解JavaScript函数
2021-05-09
【spring源码系列】之【xml解析】
2021-05-09
(在模仿中精进数据可视化07)星球研究所大坝分布可视化
2021-05-09