php下载功能,PHP中文件下载功能的详解

文件下载的功能对一个网站而言基本上是必备的了,今天就来看看PHP是如何实现文件下载的吧。

无控制类型

这里说的无控制类型是指 没有添加PHP代码控制的资源可以被直接下载的那些类型。一般而言,压缩文件.rar; 音视频文件:..avi等等也可以被直接下载。但是音频和mp4则会直接被浏览器解析播放。

如下图:

.avi文件

cf00cdbcc5fc965f510c10330ee00aad.gif

.rar文件

c0b6eaf0570f384d578ce9a5f8b9282c.gif

.mp4,MP3,图片等会被直接解析

edbea505c62d1c99a32dbc794cbb524f.gif

核心代码

使用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函数也是很好的。

原始下载文件的名称

280a417ef6c99fd6854a00976fad3e08.gif

优化后的文件下载名称

4ac68f133f8d3340aa52603a2e8d081b.gif

总结

php文件下载使用起来相较于Java实现真的是太方便了呢。在下载文件的内部,有许多的信息提供给我们,通过这些封装好的信息,我们可以实现更加优雅的文件下载系统。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值