• PHP文件下载


    一些常见的header功能

    header('HTTP/1.1 200 OK'); // ok 正常访问
    header('HTTP/1.1 404 Not Found'); //通知浏览器 页面不存在
    header('HTTP/1.1 301 Moved Permanently'); //设置地址被永久的重定向 301
    header('Location: http://www.test.con/'); //跳转到一个新的地址
    header('Refresh: 10; url=http://www.test.con/'); //延迟转向 也就是隔几秒跳转
    header('X-Powered-By: PHP/7.0.0'); //修改 X-Powered-By信息
    header('Content-language: en'); //文档语言
    header('Content-Length: 1234'); //设置内容长度
    header('Last-Modified: '.gmdate('D, d M Y H:i:s', $time).' GMT'); //告诉浏览器最后一次修改时间
    header('HTTP/1.1 304 Not Modified'); //告诉浏览器文档内容没有发生改变
    ###内容类型###
    header('Content-Type: text/html; charset=utf-8'); //网页编码
    header('Content-Type: text/plain'); //纯文本格式
    header('Content-Type: image/jpeg'); //JPG、JPEG
    header('Content-Type: application/zip'); // ZIP文件
    header('Content-Type: application/pdf'); // PDF文件
    header('Content-Type: audio/mpeg'); // 音频文件
    header('Content-type: text/css'); //css文件
    header('Content-type: text/javascript'); //js文件
    header('Content-type: application/json'); //json
    header('Content-type: application/pdf'); //pdf
    header('Content-type: text/xml'); //xml
    header('Content-Type: application/x-shockw**e-flash'); //Flash动画
    ######
    ###声明一个下载的文件###
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename="ITblog.zip"');
    header('Content-Transfer-Encoding: binary');
    readfile('test.zip');
    ######
    ###对当前文档禁用缓存###
    header('Cache-Control: no-cache, no-store, max-age=0, must-revalidate');
    header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
    ######
    ###显示一个需要验证的登陆对话框###
    header('HTTP/1.1 401 Unauthorized');
    header('WWW-Authenticate: Basic realm="Top Secret"');
    ######
    ###声明一个需要下载的xls文件###
    header('Content-Disposition: attachment; filename=abc.xlsx');
    header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
    header('Content-Length: '.filesize('./test.xls'));
    header('Content-Transfer-Encoding: binary');
    header('Cache-Control: must-revalidate');
    header('Pragma: public');
    readfile('./test.xls');

    看下下载所要用的的请求头

    header("Content-type:application/octet-stream");
    header("Accept-Ranges:bytes");
    header("Accept-Length:".$file_Size);
    header("Content-Disposition: attachment; filename=".$filename);
    • content-type:文件类型
    • Accept-Ranges:表示接收数据的类型或者范围,图片属于二进制的东西所以需要使用字节的方式传输
    • Accept-Length:表示接收的文件大小,php文件下载需要告诉浏览器下载的文件有多大
    • Content-Disposition:附件只需要把文件名给过去就可以,这个名称就是下载时显示的文件名称

    文件下载的代码

     1 <?php
     2 if(!function_exists('finfo_open')){
     3     header('Content-type:text/html;charset=utf-8');
     4     exit('请先开启php下载服务');
     5 }
     6 //文件路径
     7 $file='2.zip';
     8 $fileinfo=finfo_open(FILEINFO_MIME_TYPE); //返回文件信息
     9 $leixing=finfo_file($fileinfo, $file);//返回文件类型
    10 echo $leixing;
    11 //释放资源
    12 finfo_close($fileinfo);
    13 //网页类型
    14 header('Content-type:'.$leixing);
    15 //获取文件名
    16 header('Content-Disposition: attachment; filename='.basename($file));
    17 //大小
    18 header('Content-Length:'.filesize($file));
    19 //文件下载
    20 readfile($file);
  • 相关阅读:
    HDU_2203_KMP入门
    HDU_1711_初识KMP算法
    过滤器基础
    HDU_1907_基础博弈nim游戏
    nim游戏解法(转)
    HDU_1517_博弈(巧妙规律)
    HDU_1850_nim游戏
    HDU_1847_基础博弈sg函数
    < 转>Java 反射机制浅析
    <转>单机版搭建Hadoop环境
  • 原文地址:https://www.cnblogs.com/xiaozhang666/p/11164108.html
Copyright © 2020-2023  润新知