PHP实现文件上传和下载(单文件上传、多文件上传、多个单文件上传)(面向对象、面向过程)
今天我们来学习用PHP进行文件的上传和下载,并且用面向过程和面向对象的方式对文件上传进行一个限制
一、简单的上传测试
1、客户端:upload.php

2、后端:doAction.php

结果:

二、文件上传配置解析
1、服务器端配置(在php.ini中)
file_upload = On on表示打开支持HTTP上传,off表示关闭
upload_tmp_dir = 表示图片保存的位置
upload_max_filesize = 允许上传文件的最大值(默认2M)
max_file_upload = 允许一次上传的最大文件数(默认20)
post_max_size = POST方式发送数据的最大值(默认8M)
2、错误信息说明(error)无5号错误号
1、upload_err_OK = 0 表示文件上传成功
2、upload_err_ini_size = 1 表示上传文件超过了在PHP.INI中upload_max_file_size选项的限制值
3、upload_err_form_size = 2 表示上传文件超过了max_file_size选定值
4、upload_err_partial = 3 表示只有部分上传
5、upload_err_no_file = 4 表示没有文件被上传
6、upload_err_no_tmp_dir = 6 表示找不到临时文件夹
7、upload_err_cant_weitr = 7 表示文件写入失败
8、upload_err_extension = 8 表示上传的文件被PHP扩展程序中断
三、对上传文件进行一些限制
1、限制内容:
(1)限制上传文件的大小
(2)限制上传文件的类型
(3)检测是否为真实图片(即真实是txt文本文件,用户故意把后缀名改成图片文件)
(4)检测是否是HTTP POST方式上传的
2、客户端:upload1.php

3、服务器端:doAction1.php



相关函数解析:






4、测试结果
(1)上传一张图片



(2)上传一个文本文件


四、将上传功能封装成单文件的上传函数
1、前端:upload2.php

2、上传功能函数定义:upload.func.php


3、服务器端:doAction2.php 加测试结果

结果


结果



效果


五、多文件上传的封装函数(针对单文件、多个单文件、多文件上传)
首先,我们再进行上传多个文件的时候,那我们上传的结果会变得跟上面的不一样了,例如:

输出的结果为

那么我们可以看到,输出的结果是个三维数组,那么我们再进行对函数封装的时候呢,需要把三维数组转换为二维数组,这样的话,实用度会更强哦!
1、前端:upload3.php

2、上传文件的函数封装




3、服务器端:doAction3.php

4、测试:

结果


6、用面向对象来实现对单文件上传
1、前端:upload4.php

2、类文件:upload.class.php





3、服务器端:doAction4.php

5、测试
(1)


(2)


(3)


(4)



7、下载功能
准备工作:先创建一个文件夹,把客户端和服务器端,还有要下载的图片放进此文件夹中
1、前端:download.php

2、后端:doDownload.php

3、效果

小解释:

好了,这就是今天的全部内容啦,你学会了吗!!!!加油
END

浙公网安备 33010602011771号