zoukankan      html  css  js  c++  java
  • 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);
  • 相关阅读:
    网络测量中基于Sketch方法的简单介绍
    Reading SBAR SDN flow-Based monitoring and Application Recognition
    Reading Meticulous Measurement of Control Packets in SDN
    Reading SketchVisor Robust Network Measurement for Sofeware Packet Processing
    ovs加dpdk在日志中查看更多运行细节的方法
    后缀数组
    (转载)LCA问题的Tarjan算法
    Codeforces Intel Code Challenge Final Round (Div. 1 + Div. 2, Combined) A. Checking the Calendar(水题)
    Vijos 1816统计数字(计数排序)
    卡特兰数
  • 原文地址:https://www.cnblogs.com/xiaozhang666/p/11164108.html
Copyright © 2011-2022 走看看