PHP 文件下载 浅析
2016-08-16 19:18
162 查看
无控制类型
avi文件
rar文件
mp4MP3图片等会被直接解析
核心代码
类型
长度
实现函数
优化
原始下载文件的名称
优化后的文件下载名称
总结
文件下载的功能对一个网站而言基本上是必备的了,今天就来看看PHP是如何实现文件下载的吧。
如下图:
注意: 下载文件的名称一定不能包含其在服务器上的完整路径名称,否则有可能会导致部分资源的泄露。即使有办法能控制访问资源的权限,但是使用basename函数也是很好的。
avi文件
rar文件
mp4MP3图片等会被直接解析
核心代码
类型
长度
实现函数
优化
原始下载文件的名称
优化后的文件下载名称
总结
文件下载的功能对一个网站而言基本上是必备的了,今天就来看看PHP是如何实现文件下载的吧。
无控制类型
这里说的无控制类型是指 没有添加PHP代码控制的资源可以被直接下载的那些类型。一般而言,压缩文件.rar; 音视频文件:..avi等等也可以被直接下载。但是音频和mp4则会直接被浏览器解析播放。如下图:
.avi文件
.rar文件
.mp4,MP3,图片等会被直接解析
核心代码
使用php代码控制文件的下载合适很简单的。我们住需要很少的代码便可以完成如此复杂的工作。类型
// 使用basename函数可以获得文件的名称而不是路径信息,保护了服务器的目录安全性 header("content-disposition:attachment;filename=".basename($filename));
长度
header("content-length:".filesize($filename));
实现函数
<?php $filename = $_GET['filename']; // 使用basename函数可以获得文件的名称而不是路径信息,保护了服务器的目录安全性 header("content-disposition:attachment;filename="$filename); header("content-length:".filesize($filename)); readfile($filename); ?>
优化
上面指定文件名称的时候我们没有使用一个叫basename的函数,这样我们下载文件的时候将会连带着其在服务器上的文件的完整的路径。注意: 下载文件的名称一定不能包含其在服务器上的完整路径名称,否则有可能会导致部分资源的泄露。即使有办法能控制访问资源的权限,但是使用basename函数也是很好的。
原始下载文件的名称
优化后的文件下载名称
总结
php文件下载使用起来相较于Java实现真的是太方便了呢。在下载文件的内部,有许多的信息提供给我们,通过这些封装好的信息,我们可以实现更加优雅的文件下载系统。相关文章推荐
- PHP 文件下载 浅析
- 浅析PHP文件下载原理
- PHP文件下载实例代码浅析
- PHP文件下载实例代码浅析
- 浅析PHP文件下载原理
- PHP实现文件安全下载 (藏)
- 使用PHP脚本下载远程文件
- PHP+FLASH实现上传文件进度条相关文件 下载
- PHP+FLASH实现上传文件进度条相关文件 下载
- php点击下载txt文件
- php实现显示文件下载大小
- PHP文件下载类
- 一段php的文件下载函数
- 转:最近看了一篇文章用PHP实现手机对jar,jad文件的下载 作者:陈泽|SurfChen
- PHP小程序—从A空间直接下载文件到B空间—RGD 1.5 上一主题 | 下一主题
- 用PHP实现文件下载
- PHP实现文件安全下载
- PHP实现文件安全下载
- 用PHP实现文件下载
- 学习工作中的一个PHP文件下载代码