找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 791|回复: 0
打印 上一主题 下一主题

PHP文件下载实例代码浅析

[复制链接]

2588

主题

2588

帖子

7694

积分

论坛元老

Rank: 8Rank: 8

积分
7694
跳转到指定楼层
楼主
发表于 2018-2-14 05:33:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

            文件下载的功能对一个网站而言基本上是必备的了,今天就来看看PHP是如何实现文件下载的吧。
无控制类型
这里说的无控制类型是指 没有添加PHP代码控制的资源可以被直接下载的那些类型。一般而言,压缩文件.rar; 音视频文件:..avi等等也可以被直接下载。但是音频和mp4则会直接被浏览器解析播放。
如下图:
.avi文件

.rar文件

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

核心代码
使用php代码控制文件的下载合适很简单的。我们住需要很少的代码便可以完成如此复杂的工作。
类型
// 使用basename函数可以获得文件的名称而不是路径信息,保护了服务器的目录安全性
header("content-disposition:attachment;filename=".basename($filename));
长度
header("content-length:".filesize($filename));
实现函数
优化
上面指定文件名称的时候我们没有使用一个叫basename的函数,这样我们下载文件的时候将会连带着其在服务器上的文件的完整的路径。
注意: 下载文件的名称一定不能包含其在服务器上的完整路径名称,否则有可能会导致部分资源的泄露。即使有办法能控制访问资源的权限,但是使用basename函数也是很好的。
原始下载文件的名称

优化后的文件下载名称

总结
php文件下载使用起来相较于Java实现真的是太方便了呢。在下载文件的内部,有许多的信息提供给我们,通过这些封装好的信息,我们可以实现更加优雅的文件下载系统。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
            
            
您可能感兴趣的文章:
  • Flash两个上传示例ASP和PHP(原文件下载,包括后台程序)
  • PHP文件下载类
  • php利用header函数实现文件下载时直接提示保存
  • PHP通过header实现文本文件下载的代码
  • Php中文件下载功能实现超详细流程分析
  • PHP连接SQLSERVER 注意事项(附dll文件下载)
  • 解决PHP超大文件下载,断点续传下载的方法详解
  • php实现文件下载简单示例(代码实现文件下载)
  • php实现文件下载代码分享
  • php实现的支持断点续传的文件下载类
            
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    用户反馈
    客户端