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

无控制类型

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

如下图:

.avi文件

.rar文件

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

核心代码

使用php代码控制文件的下载合适很简单的。我们住需要很少的代码便可以完成如此复杂的工作。

类型

长度

header("content-length:".filesize($filename));

实现函数

优化

上面指定文件名称的时候我们没有使用一个叫basename的函数,这样我们下载文件的时候将会连带着其在服务器上的文件的完整的路径。

注意:下载文件的名称一定不能包含其在服务器上的完整路径名称,否则有可能会导致部分资源的泄露。即使有办法能控制访问资源的权限,但是使用basename函数也是很好的。

原始下载文件的名称

优化后的文件下载名称

总结

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

php文件下载到服务器代码,PHP文件下载实例代码浅析相关推荐

  1. java多线程代码_java多线程实例代码详解

    原文:http://blog.csdn.net/paranoidyang/article/details/70184523 作者:Paranoidyang 线程与进程的区别 (1)程序是一段静态的代码 ...

  2. PE结构-空白区手动添加任意代码(附实例代码)

    PE之添加任意代码到空白区 预备知识 1.查找本机MessageBoxA地址 1.打开OD调试工具拖入要添加的exe程序. 2.在命令中输入 : (输入后按下回车键) 3.点击断点页面即可看到Mess ...

  3. java静态代码块和实例代码块

    一.静态代码块 1.什么是静态代码块? 用static修饰的代码块是静态代码块.它是在类加载时加载的,并且只会加载一次. 2.静态代码块的语法 static { java语句: java语句: } 3 ...

  4. java 代码块(局部代码块、实例代码块、静态代码块、同步代码块)

    1 引言 代码块是类的成分之一:成员变量,方法,构造器,代码块,内部类. 在Java中,使用 { } 括起来的代码被称为代码块(Code block) 1.1 代码块的分类 根据其位置和声明的不同,可 ...

  5. php100例代码教程,php实例代码_php用户登录实例教程代码

    摘要 腾兴网为您分享:php用户登录实例教程代码,音恋,小米云盘,武魂传说,万步有约等软件知识,以及绿城党旗红,一席app,一亩田app,窝立方,fairuse4wm,超星阅读,大连农商银行,qq名片 ...

  6. python发邮件给女朋友代码_Python群发邮件实例代码

    直接上代码了 import smtplib msg = MIMEMultipart() #构造附件1 att1 = MIMEText(open('/home/a2bgeek/develop/pytho ...

  7. 抖音代码舞python实例代码

    基本的思路如下: 1. 视频文件转图片 2.对图片处理,生成字符画 3. 合成字符画到视频 主要代码如下,需要修改的为路径,如果需要生成多种不同的效果,可以根据像素的值进行个性化设计. # codin ...

  8. php访问数据库例子,PHP访问MSSQL数据库(实例代码)

    本例子只作为简单的引导,实现一个简单的查询: php中mssql数据库简单查询完整实例 //说明:测试的时候是连接的是远程的mssql数据库,没有在本机运行 //初始化mssql数据库连接,分别是 主 ...

  9. Java父类与子类中静态代码块 实例代码块 静态变量 实例变量 构造函数执行顺序...

    实例化子类时,父类与子类中的静态代码块.实例代码块.静态变量.实例变量.构造函数的执行顺序是怎样的? 代码执行的优先级为: firest:静态部分 second:实例化过程 详细顺序为: 1.父类静态 ...

  10. java 代码块(静态代码块、局部代码块、构造代码块)

    public class Test3 {private String name;static {System.out.println("static 实例代码块执行...");}/ ...

最新文章

  1. 使用dynamic特性处理XML文档
  2. UA OPTI570 量子力学8 每一个左矢都有与之对应的右矢吗?
  3. [图像处理] Python+OpenCV实现车牌区域识别及Sobel算子
  4. 【渝粤题库】广东开放大学 外贸会计1 形成性考核
  5. STM32 4*4矩阵按键
  6. 学以致用六---Centos7.2+python3.6.2+django2.1.1 --搭建一个网站
  7. Django之tag标签和filter标签
  8. 大数据视频资源——尚硅谷大数据视频地址
  9. matlab参数方程求导 求不定积分
  10. 常用元器件的识别与使用(电阻、电容、电感)
  11. cv2高动态范围成像(HDRI、HDR)
  12. Chrome去除新标签页最近访问
  13. 蓝桥杯 ADV-222 求arccos
  14. 清华源阿里源 centos
  15. 解决blur与click冲突
  16. opencv学习-碰壁小球
  17. python 3.10不支持torch,因而无法安装和使用cnocr
  18. shmget - 共享内存
  19. 笔记本屏幕亮度随着显示内容而变,时亮时暗
  20. opencv4.3.0 Cmake后debug模式生成不了opencv_world430d.lib

热门文章

  1. BTC缺乏关键性突破仍需调整,BCH强势姿态保持引领全场
  2. 《Python基础教程第二版》第二章-Python列表和元祖
  3. 张高兴的 Windows 10 IoT 开发笔记:FM 电台模块 KT0803L
  4. 2017-2018-1 20155328 《信息安全系统设计基础》第十四周学习总结
  5. 在Oracle中IMP导入数据时,如何解决目标数据库字符不一致问题
  6. 两个CSS样式生成网站
  7. 选择排序-直接选择排序
  8. CI框架表单提交数据接收乱码
  9. Java多线程面试题
  10. 关于CCRANDOM_0_1