http禁用缓存、文件下载

一、一个完整的http响应报文:

    Location:http://www.baidu.org/index.php
    Server:apache
    Content-Encoding:gzip   //内容编码支持的压缩算法:gzip
    Content-Length:80    //返回数据的大小
    Content-Language:zh-cn
    Content-Type:text/html;charset=GB2312
    Last-Modified:Tue,11 Jul 2000 18:23:51 GMT   //浏览器请求的最新时间
    Refresh:1;url=http://www.baidu.com  //告诉浏览器间隔1秒重定向到百度去
    Content-Disposition:attachment;filename=aaa.zip
    Transfer-Encoding:chunked
    Set-Cookie-SS=Q0=5Lb_nQ;path=/search
    Expires:-1                .//控制不缓存该页面(以下两句作用相同,只是为了解决浏览器兼容问题
    Cache-Control:no-cache
    Pragma:no-cache
    Connection:close/Keep-Alive
    Date:Tue,11 Jul 2000 18:223:52 GMT

二、实例:如何通过http响应,控制浏览器的跳转间隔时间(3秒)

    <?php
        header("Refresh:3;url:http:www.sohu.com");
    ?>

三、实例:网页默认缓存,此处禁用网页的缓存机制

    <?php

        //通过 header 禁用缓存
        header("Expires:-1");
        header("Chche-Control:no_cache");
        header("Pragma:no_cache");

        echo "Hello,chche";
    ?>

四、实例:http实际应用之文件下载

    <?php
        //演示下载一个文件
        //如果文件是中文的,则会出现乱码,必须使用iconv("utf-8", "gb2312", $file_name);函数将编码格式转为gb2312
        $file_name = "Sunset.jpg";
        $file_name = iconv("utf-8", "gb2312", $file_name);

        //1、打开文件
        if(!file_exists($file_name)) {
            echo "文件不存在";
            return;
        }
        $fp = fopen($file_name, "r")

        //获取文件大小
        $file_size = filesize($file_name);

        //下载文件所需的头部
        header("Content-type: application/octet-stream");  //返回的文件
        header("Accept-Ranges: bytes");  //以字节方式返回
        header("Accept-Length: $file_size");  //返回文件的大小
        header("Content-Disposition: attachment; filename=''.$file_name");  //客户端的对话框弹出的文件名

        //向客户端回送数据
        $buffer=1024;
        $file_count = 0;  //为了下载安全,做的文件字节读取计数器

        while(!feof($fp) && ($file_size - $file_count >0)) {  //判断文件是否结束
            $file_data = fread($fp, $buffer);  //把部分数据回送给浏览器
            $file_count += $buffer; // 
            echo $file_data;
        }

        //关闭文件
        fclose($fp);
    ?>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值