当前课程知识点:PHP程序设计 >  PHP文件和图像技术 >  文件的上传和下载 >  文件下载

返回《PHP程序设计》慕课在线视频课程列表

文件下载在线视频

文件下载

下一节:图像基础1

返回《PHP程序设计》慕课在线视频列表

文件下载课程教案、知识点、字幕

文件的下载比较简单

需要注意的是

文件下载的时候

需要在http消息里面设置两个响应消息头

那么这两个响应消息头是干什么呢

就是告诉它说

这个页面里面有一个要下载的文件

那么你不要在浏览器里面去解析这个文件吗

你是要直接把它下载下来的

对吧直接把它下载下来的

比如说我们响应小镜头这个header

我们要写这样一个

那么这个是一个文件的描述

对吧文件描述

后面的filename就是我们下载之后的文件名

应该写成什么样的

因为时间的关系

我们的下载咱们就直接来看一下代码对吧

补充上几句重要的东西

我把它已经放进来了

那么文件下载这个地方定义了一个函数

为什么要定义函数呢

其实是方便各位同学去用的

因为咱们下载往往是在我们的一个页面里面

可能只是一个链接或者是在页面的最底下

有那么一个供下载的一些资料

那么如果有这个页面里面有这个需求的话

那你可以直接在这个地方

function这个地方

去直接调用这个函数就可以了对吧

那么我们的下载定义函数

首先我们这还定义个什么

常量对不对

定义一个常量

我们的常量是什么呢

目录文件的名字

对吧是目录文件名字注意

因为我这个字体格式的原因

它没出来

其实这个是下划线下划线然后大写的FILE

然后再上划线下划线

是这么个东西

是咱们刚一开始学到的一个常量

那么我们的这个里面会有什么呢

这块我们function首先是判断这个文件

存在不存在

但是我们有一个问题

就是我这一块要加一句注释

就是我们现在对有可能会出现什么

可能会出现

中文名

比如说

我现在刚才我传进去的up里面

是个123对不对

但我桌面上其他文件是不是都是中文名的

那么中文名文件怎么办呢

如果你中文名文件不做处理的话

它传进去即便下载下来肯定是一堆乱码

所以我们要对可能出现的中文名

进行一个转码

这个转码的函数

其实同学们都见过

我们$file对吧

$file_path

等于我们就这个函数iconv对没错

变蓝了就对了

对吧就是这个

这个我们是不是再上一章那个

图形图像处理那个地方见我

对吧对它要进行一个

然后这里面写的是什么呢

里面写的就是我们的utf-8

然后里面是gb2312

然后我们在写我们有可能的名字

file_path

现在写的暂时的路径

好的分号带起来

我们要加上这一句

把它进行一个转码

然后再去判断A存在存在

然后记得这现在不是都是路径吗

我们是不是刚才讲目录的时候说过

有一个函数可以直接获取文件名的

还记得吧

就是那个basename对不对

括号里面把我们的什么$file_path对吧

这个里面的文件名取出来

文件名取出来给它一个名字

就是$file_name对吧

获取文件名用的就是它

就是我们的那个basename

还有一个文件大小

文件大小怎么样

就是那个filesize

括号里面我们依旧是个$file_path对吧

分号带上

给它一个赋值

大小自然就是我们的$file_size

好的

那么获取文件名大小

然后是不是就是open

打开以只读的方式去打开这文件

然后我们在这个地方加了两个header

这两个header就是我刚才说的

这俩个header就是告诉浏览器说

不要在浏览器里面直接去解析文件

这个里面有一个对吧

这个里面有一个下载的东西

而且这个地方这句什么呢

它这个类型就是我们的文件

是以二进制流的形式去执行的

然后我们打开了文件之后

其实就做了一个从前往后读的操作对吧

你看fread的一个一个往后读

用自加的方式一块一块的往过读的文件

最后判断整个文件是否结束

关闭文件

最终我们调用我们的这个函数对吧

就是我们的downfile这样子的一个函数

那么downfile这样子的一个函数里面

我们把路径要加上

那么我们就是按步骤走

我们这个地方目前有的是谁

123.docx对吧

那我们就把123.docx下载下来

我把路径写好

路径写好

然后跑一下吧

看看

是啊

好的没有什么问题

我这个页面一跑这个地方就出来了

是不是我们的123.docx

你可以根据你的要求

比如说我现在就不要放在那个哪了

不要放在桌面了或者放桌面也可以对吧

我桌面里面有一个文件内容

我放在文件内容的文件夹下

选择文件夹点击保存好了

下载成功了

我们看看文件内容这个文件夹下

是不是有123.docx了

对吧

再打开一下

看到里面写的中文字都没有什么变化OK

这个就是下载

PHP程序设计课程列表:

PHP开篇

-PHP概述

--PHP概述与工作流程

-PHP概述--作业

-开发环境搭建

--开发环境搭建一

--开发环境搭建二

--集成环境的安装

-开发环境搭建--作业

-PHP开篇

PHP语法基础

-PHP语法入门

--语法入门一

--语法入门二

-PHP数据的输出

--数据输出

-PHP数据类型

--数据类型1

--数据类型2

--数据类型3

--数据类型4

--数据类型5

--数据类型6

--PHP语言中的数学运算符

-PHP常量和变量

--常量和变量1

--常量和变量2

--常量和变量3

--常量和变量4

--常量和变量5

--常量

-PHP常量和变量--作业

-PHP的运算符和表达式

--运算符和表达式1

--运算符和表达式2

--运算符和表达式3

--PHP的三元运算符

-PHP语法基础--PHP的运算符和表达式

-PHP语法基础

流程控制语句

-条件判断语句

--条件判断语句1

--条件判断语句2

--条件判断语句3

--条件语句

-循环控制语句

--循环控制语句

--循环语句练习1

--循环语句练习2

-跳转语句和终止语句

--跳转和终止语句

-PHP流程控制

-流程控制

PHP数组

-数组概述和分类

--数组概述和分类

--PHP数组分类

-数组创建、删除和修改

--数组创建、删除和修改1

--数组创建、删除和修改2

--数组创建

-数组遍历

--数组遍历1

--数组遍历2

--数组遍历3

--数组遍历4

--数组遍历5

--foreach

-数组相关函数

--数组相关函数1

--数组相关函数2

--数组相关函数3

--数组相关函数4

--数组相关函数5

--数组相关函数6

--数组函数的练习

-PHP数组--作业

-分页函数的应用

-PHP数组

-数组练习1

-数组练习2

-数组练习3

PHP函数

-函数的定义与调用

--函数定义与调用

-函数参数传递

--函数参数传递1

--函数参数传递2

-自定义函数总结和实验

--自定义函数总结和实验

-常用变量和数学函数

--变量和数学函数库

--数学函数实验

--数学函数

-日期和时间函数

--日期时间函数1

--时间日期函数2

--日期时间函数实验1

--时间日期函数实验2

--时间日期函数实验3

--倒计时

-PHP函数--作业

-PHP函数

字符串函数

-字符串概述

--字符串特点

--字符串处理方式

-常见的字符串函数

--常见字符串函数1

--输出函数1

--输出函数2

--输出函数3

--去除空白函数1

--去除空白函数2

--去除空白函数3

--填补函数和大小写函数

--其他字符串函数1

--其他字符串函数2

--与HTML相关函数1

--与HTML相关函数2

--与HTML相关函数3

--与HTML相关的函数4

--与HTML相关函数5

--字符串函数实验1

--字符串函数实验2

--字符串函数实验3

--字符串函数实验4

--字符串练习1

--字符串练习2

--字符串练习3

--字符串练习4

--字符串练习5

--字符串函数

-正则表达式

--正则表达式基本概念

--兼容正则表达式函数

--正则表达式语法构成

--正则表达式原子讲解1

--正则表达式原子讲解2

--正则表达式原子讲解3

--正则表达式元字符讲解1

--正则表达式元字符讲解2

--正则表达式元字符讲解3

--正则表达式元字符讲解4

--正则表达式元字符讲解5

--正则表达式元字符讲解6

--正则表达式元字符讲解7

--正则表达式中的模式修正符号

--正则表达式练习

--正则表达式

-字符串函数--作业

-PHP字符串函数

PHP文件和图像技术

-文件概述和操作

--文件概述和操作1

--文件概述和操作2

-文件的上传和下载

--文件上传1

--文件上传2

--文件上传3

--文件下载

-图像基础

--图像基础1

--图像基础2

-图像基本操作

--图像基本操作1

--图像基本操作2

--图像基本操作3

--图像基本操作4

--图像基本操作5

--图像基本操作6

--表单与验证码的结合

--图像技术练习1

--图像技术练习2

--图像技术练习3

--缩略图

-PHP文件与图像技术-作业

-PHP文件和图像技术

-变色验证码

会话管理

-会话表单

--会话表单概述1

--会话表单概述2

--会话表单概述3

--超全局变量1

--超全局变量2

--超全局变量3

--表单安全验证

--获取表单数据

--GET和POST区别

-cookie概述

--COOKIE简介

--COOKIE基本使用1

--COOKIE基本使用2

--显示用户上次访问时间

--控制用户登录过期时间1

--控制用户登录过期时间2

--控制用户登录过期时间3

--COOKIE

-session概述

--SESSION概述

--基本应用1

--基本应用2

--综合案例-登录和注销1

--综合案例-登录和注销2

--综合案例-登录和注销3

--综合案例-登录和注销4

--综合案例-登录和注销5

--SESSION和COOKIE区别

-会话管理-作业

-会话管理

PHP操作数据库

-MySQL和PHPMyadmin概述

--MySQL概述1

--MySQL概述2

--PHPMyadmin概述1

--PHPMyadmin概述2

--PHPMyadmin的导入和导出操作

-PHP访问MySQL

--连接服务器

--选择数据库

--浏览表内容1

--浏览表内容2

--MySQLi扩展的应用1

--mysqli扩展应用2-将数据添加到数据库中

--使用mysqli扩展添加数据到数据库中

--使用mysqli扩展删除数据库中数据

--使用mysqli扩展修改数据库中数据

--mysqli扩展应用3-设计删除链接

--MySQLi扩展应用4-完成数据库中数据的删除

--mysqli扩展应用5---编辑链接和编辑页面的设计

--mysqli扩展应用6---编辑数据库中的信息

--mysqli扩展7-条件查询数据表中的数据

-MySQL扩展的使用

--数据表内容显示页面

--添加数据页面1

--添加数据页面2

--删除页面1

--删除页面2

--删除页面3

--数据修改页面1

--数据修改页面2

--数据修改页面3

-PHP操纵数据库

文件下载笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。