php 下载指定模板文件 方法

这段代码展示了如何在PHP中实现文件流下载,并处理中文文件名的问题。通过检查浏览器User-Agent,适配不同浏览器的filename编码方式,确保正确显示文件名。同时,它设置了Content-Type、Content-Disposition和Content-Length头部,读取并发送文件内容。

方法一: 输出文件流形式


		$filename = basename($file);
        $filenameArr = explode('.',$filename);
        $filename = current($filenameArr).'_'.date('YmdHis').'.'.end($filenameArr);
        header("Content-type: application/octet-stream");
        //处理中文文件名
        $ua = $_SERVER["HTTP_USER_AGENT"];
        if (preg_match("/MSIE/", $ua)) {
            $encoded_filename = rawurlencode($filename);
            header('Content-Disposition: attachment; filename="' . $encoded_filename . '"');
        } else if (preg_match("/Firefox/", $ua)) {
            header("Content-Disposition: attachment; filename*=\"utf8''" . $filename . '"');
        } else {
            header('Content-Disposition: attachment; filename="' . $filename . '"');
        }
        header("Content-Length: ". filesize($file));
        readfile($file);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值