当前课程知识点:PHP程序设计 > PHP文件和图像技术 > 文件的上传和下载 > 文件上传2
我们来看一下PPT这个概念
其实刚才咱们已经做了一部分了
对吧
那么文件上传
其实就是一个文件复制
需要通过浏览器端通过http协议
将文件上传到服务器端的文件夹
再将其移动到指定的目录里面去
所以这是两个部分
一个是客户端的表单设置
一个是服务器端的文件操作
那么刚刚咱们做的就是客户端的表单设置
客户端表单设置提交方式必须是post
而且要添加一个上传属性
刚刚让同学们都修改了对吧
那么还有就是我们第一个input标签
一般设定为隐藏
通过value值来指定
允许上传的文件的最大尺寸
那么第二个类型就是一个file
那么我们可以显示一个文件的输入框
并且提供这个浏览按钮用于选择文件对吧
你把input这个标签的类型改成file
那么自动的那个地方就全出来了
对吧全出来了
那么接着我们肯定是要做
服务器端的文件操作了
那么通过这个上传表单选择一个文件
并且提交之后请注意
PHP会自动生成一个$_FILES的二维数组
这个东西是不是长得有点眼熟啊
咱们在之前讲很多题目的时候都用过什么
$post对不对
那么在文件这个地方
它给你一个很好用的东西就是$_FILES
这样子的二维数组
这个数组保存了上传文件的信息
那么这个数组里面
你肯定是要写那个上传的文件名啊
刚刚同学们是不是在
input file那个地方我专门提醒了
name这个地方咱们要自己写个名对不对
写这个userfile这样子的一个名字
那么你的$FILES中括号里面的第一个
就用的是用userfile
对吧就是你的这个名字是你选择的
你写的这个文件名
那么在这个文件名里面
我们可以包含很多内容
第一个中括号里面就是我们的文件
对吧userfile
那么第二个中括号里面name
那么我们就是上传文件的名称对吧
这就把名称取出来了
类型对吧
还有大小
然后还有一个存储在服务器文件的临时名称
还有一个导致文件上传错误的代码
那么由文件上传导致的错误代码重要吗
重要非常重要
我不知道同学们有没有上过一些
不是特别大或者不是特别专业的那种网站
你上去了之后
然后呢
点一个什么东西
它给你提示你做的不对
但是呢
它只告诉你
你做的不对
它不告诉你你到底哪做错了
你不知道怎么修改
对不对
是文件大小太大了
还是要变小
还是我字符长了还是怎么样
不知道
它不提示
它只告诉你错了
对吧
我之前是上过那种网站的
让人非常的愤怒对吧
所以呢我们的这个由文件上传导致的错误代码
整个是有一系列的内容的
你看这个代码可以是谁
可以是0123467
没有5对吧
那么0是什么的
0是一切正常
也就是0是正确的
那么大于0的这些数全是有问题的
比如说这个1是超过的是php.ini里面
也就是PHP的配置文件里面
那么限制的一个值
那么2就是我们刚才设置的
那个表单里面的一个选项值
3就是只有一部分上传了
4就是没有文件被上传
6就是找不到临时文件夹
刚才说文件上传要放到
我们服务器端的一个临时文件夹里面去
然后7就是彻底的一个写入失败
对吧写入失败
你要给用户一定的提示
让用户知道
我应该怎么改
然后能够成功
你要不给他提示了
我告诉他错
那是不合适的
所以呢
在我们的文件上传
伏对吧文件操作这个部分里面
我们很大一个部分对吧是在写什么呢
是在写错误提示
这是我们刚建的表单
就来写我们的这个wjsc2这个PHP了
我就在这个里面写了
好的在这个里面来写
那么我们要写两个部分的内容
第一个部分
第一个部分是要写一个判断
文件上传到临时目录
是否会出错
如果出错的话
则输出错误信息并退出
那么
第二个部分才做的是什么
第二部分才做的是这个上传成功
传临时目录成功
然后将其复制到指定的文件夹中
咱们要做两个部分
第一个部分先判断成功了没
刚才一直在说临时目录
后面会给同学们在再说一下临时目录的
大家要知道我们的文件上传按照操作
它都是放到服务器端的一个临时目录里面
你必须要从临时目录里面
再做一次复制操作
才能到你指定的文件夹是这样做的
所以呢
咱们先判断的是
到这个临时目录有没有问题
刚才我们已经看到了
这个地方是不是有错误代码
那么
当我们的这个二维数组的值大于0的时候
那是不是说明我们上传的内容是有错的
那么如果是这样子的话
我们就来写一个if
写了一个if
if我们括号里面写的是什么
$_FILES
中括号带起来
里面单引号
里面是什么
刚才我们的名字是userfile对吧
注意这个名字写的是谁的名字
写的是这个名字
写的是这个名字
我们自己写的userfile对吧
然后第二个中括号里面
那就是一个固定的error
对吧error
如果它大于0的话
那说明我们的程序是有错的
对不对
说明我们的程序是有错的
那么我们程序有错
还有这么多个错误呢
有这么多个错误呢
是不是有这么多的错误
那么这是一个标准的什么
是不是一个多分支啊
是不是
那么出现这个我们返回它
出现这个返回它
标准的多分支怎么写
是不是switsh对吧
switsh括号里面又放的是谁呢
放的是不是还是它
我把它直接粘贴过来OK
那么这个switsh语句
让我把$给丢了
那么这个Switch语句
我们里面就分头的去写了
分头的去写什么
第一个
我们的case
case是1的时候冒号
对吧我们要怎么样
是不是我们的$massage对吧
msg对吧
$massage等于什么
等于的就是我们的这个
文件超过了这个的限制
把它贴进来
然后我们要干什么带分号
switch这里面一定会写的是什么
case里面一定会写什么
是不是break
一个break加上好了
这就是把第一个写了
那么相对应的我们写234
没有5
然后写67可以吗
和这一样有问题吗
没有问题
大家可以试着写一下
然后下课也可以休息一下
-PHP概述
-PHP概述--作业
-开发环境搭建
--开发环境搭建一
--开发环境搭建二
--集成环境的安装
-开发环境搭建--作业
-PHP语法入门
--语法入门一
--语法入门二
-PHP数据的输出
--数据输出
-PHP数据类型
--数据类型1
--数据类型2
--数据类型3
--数据类型4
--数据类型5
--数据类型6
-PHP常量和变量
--常量和变量1
--常量和变量2
--常量和变量3
--常量和变量4
--常量和变量5
--常量
-PHP常量和变量--作业
-PHP的运算符和表达式
--运算符和表达式1
--运算符和表达式2
--运算符和表达式3
-PHP语法基础--PHP的运算符和表达式
-条件判断语句
--条件判断语句1
--条件判断语句2
--条件判断语句3
--条件语句
-循环控制语句
--循环控制语句
--循环语句练习1
--循环语句练习2
-跳转语句和终止语句
--跳转和终止语句
-流程控制
-数组概述和分类
--数组概述和分类
--PHP数组分类
-数组创建、删除和修改
--数组创建
-数组遍历
--数组遍历1
--数组遍历2
--数组遍历3
--数组遍历4
--数组遍历5
--foreach
-数组相关函数
--数组相关函数1
--数组相关函数2
--数组相关函数3
--数组相关函数4
--数组相关函数5
--数组相关函数6
--数组函数的练习
-PHP数组--作业
-分页函数的应用
-函数的定义与调用
--函数定义与调用
-函数参数传递
--函数参数传递1
--函数参数传递2
-自定义函数总结和实验
-常用变量和数学函数
--变量和数学函数库
--数学函数实验
--数学函数
-日期和时间函数
--日期时间函数1
--时间日期函数2
--倒计时
-PHP函数--作业
-字符串概述
--字符串特点
--字符串处理方式
-常见的字符串函数
--常见字符串函数1
--输出函数1
--输出函数2
--输出函数3
--去除空白函数1
--去除空白函数2
--去除空白函数3
--其他字符串函数1
--其他字符串函数2
--字符串函数实验1
--字符串函数实验2
--字符串函数实验3
--字符串函数实验4
--字符串练习1
--字符串练习2
--字符串练习3
--字符串练习4
--字符串练习5
--字符串函数
-正则表达式
--正则表达式练习
--正则表达式
-字符串函数--作业
-文件概述和操作
--文件概述和操作1
--文件概述和操作2
-文件的上传和下载
--文件上传1
--文件上传2
--文件上传3
--文件下载
-图像基础
--图像基础1
--图像基础2
-图像基本操作
--图像基本操作1
--图像基本操作2
--图像基本操作3
--图像基本操作4
--图像基本操作5
--图像基本操作6
--表单与验证码的结合
--图像技术练习1
--图像技术练习2
--图像技术练习3
--缩略图
-PHP文件与图像技术-作业
-变色验证码
-会话表单
--会话表单概述1
--会话表单概述2
--会话表单概述3
--超全局变量1
--超全局变量2
--超全局变量3
--表单安全验证
--获取表单数据
-cookie概述
--COOKIE简介
--COOKIE
-session概述
--基本应用1
--基本应用2
-会话管理-作业
-会话管理
-MySQL和PHPMyadmin概述
--MySQL概述1
--MySQL概述2
-PHP访问MySQL
--连接服务器
--选择数据库
--浏览表内容1
--浏览表内容2
--使用mysqli扩展添加数据到数据库中
--使用mysqli扩展删除数据库中数据
--使用mysqli扩展修改数据库中数据
-MySQL扩展的使用
--添加数据页面1
--添加数据页面2
--删除页面1
--删除页面2
--删除页面3
--数据修改页面1
--数据修改页面2
--数据修改页面3