今天我们来学习用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

PHP实现文件上传和下载(单文件上传、多文件上传、多个单文件上传)(面向对象、面向过程)的更多相关文章

  1. 在SpringMVC框架下实现文件的 上传和 下载

    在eclipse中的javaEE环境下:导入必要的架包 web.xml的配置文件: <?xml version="1.0" encoding="UTF-8" ...

  2. MVC文件上传与下载

    MVC文件上传与下载 MVC文件上传与下载 想想自己从毕业到工作也有一年多,以前公司的任务的比较重,项目中有的时候需要用到什么东西都去搜索一下,基础知识感觉还没有以前在学校中的好.最近开始写博客,真的 ...

  3. SpringMVC 实现文件上传与下载,并配置异常页面

    目录 上传文件的表单要求 Spring MVC实现上传文件 需要导入的jar包 配置MultipartResolver解析器 编写接收上传文件的控制器 Spring MVC实现文件下载 下载文件时的h ...

  4. 文件的上传和下载--SpringMVC

    文件的上传和下载是项目开发中最常用的功能,例如图片的上传和下载.邮件附件的上传和下载等. 接下来,将对Spring MVC环境中文件的上传和下载进行详细的讲解. 一.文件上传 多数文件上传都是通过表单 ...

  5. Java中文件的上传与下载

    文件的上传与下载主要用到两种方法: 1.方法一:commons-fileupload.jar  commons-io.jar apache的commons-fileupload实现文件上传,下载 [u ...

  6. smartupload 上传与下载(转载)

    前台: <form action="uploadimage.jsp" method="post" enctype="multipart/form ...

  7. 一个linux下简单的纯C++实现Http请求类(GET,POST,上传,下载)

    目录 一个linux下简单的纯C++实现Http请求类(GET,POST,上传,下载) Http协议简述 HttpRequest类设计 请求部分 接收部分 关于上传和下载 Cpp实现 关于源码中的Lo ...

  8. SmartUpload类实现上传和下载

    实现文件的上传与下载,可以使用Java的I/O流的类来实现,也可以使用专业的上传.下载组件.这些组件提供了现成的类,程序员只需调用这些类中的方法即可实现文件的上传与下载.本章将向读者介绍如何应用jsp ...

  9. android+nutz后台如何上传和下载图片

    android+nutz后台如何上传和下载图片  发布于 588天前  作者 yummy222  428 次浏览  复制  上一个帖子  下一个帖子  标签: 无 最近在做一个基于android的ap ...

  10. JDFS:一款分布式文件管理实用程序第一篇(线程池、epoll、上传、下载)

    一 前言 截止目前,笔者在博客园上面已经发表了3篇关于网络下载的文章,这三篇博客实现了基于socket的http多线程远程断点下载实用程序.笔者打算在此基础上开发出一款分布式文件管理实用程序,截止目前 ...

随机推荐

  1. 2、Jquery_事件

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  2. Dapper 存储过程、事务等

    接上一篇<Dapper 增删改查> 0.存储过程 create proc p_login ), ), ) output as begin if(exists(select * from U ...

  3. 读《JavaScript权威指南》笔记(一)

    1.Number()  parseInt()  parseFloat() 如果通过Number()转换函数传入一个字符串,它会试图将其转换为一个整数或浮点数直接量,这个方法只能基于十进制数进行转换,并 ...

  4. SKlearn中分类决策树的重要参数详解

    学习机器学习童鞋们应该都知道决策树是一个非常好用的算法,因为它的运算速度快,准确性高,方便理解,可以处理连续或种类的字段,并且适合高维的数据而被人们喜爱,而Sklearn也是学习Python实现机器学 ...

  5. ansible编译安装--操作系统环境Redhat6.4

    安装前安装包准备,下载链接如下: Python2.7下载地址:https://www.python.org/ftp/python/2.7.12/Python-2.7.12.tgz ansible下载地 ...

  6. 我的省选 Day -9

    Day -9 不知不觉,日子已经变成一位数了,已经到了最后关头了. 早上班主任在上数学课时告诉我们,高校自招的降分政策已经没有以前那么优惠了(这我知道啊) 于是老师间接的暗示了奥赛如果没拿到省一就没什 ...

  7. windows下安装python包

    1.windows下成功安装好python后,在安装目录的Scripts目录下有easy_install和pip工具 2.如果没有安装pip,进入命令行,切换到python的安装目录下的Scripts ...

  8. Cannot add or update a child row:

    两个 表 数据 不一致... 含有 约束 的 表 中 所有 id 都应该 在 主 表 中 可以 找到---

  9. 装饰器(Decorator)模式

    public interface IDoThings { public void doSomeThing(); } public class DoThings implements IDoThings ...

  10. IE8浏览器总是无响应或卡死崩溃怎么办

    IE8浏览器总是无响应或卡死崩溃怎么办 2016-05-11 11:22:31 来源:百度经验 作者:qq675495787 编辑:Jimmy51 我要投稿 IE在打开某些网页的时候经常崩溃或无响应, ...