您的位置:首页 > 编程语言 > PHP开发

php header()函数实现下载功能

2017-01-13 14:15 477 查看
1、
<?php
header('Content-Disposition:attachment');
readfile("w.jpg");
?>


header('Content-Disposition: attachment'); 设置 http  报文头,告诉浏览器它所接收的文件的 Content-Disposition 属性为 attachment ,这样浏览器将直接显示接收的内容,而是将接收的内容保存到磁盘。

执行脚本将会弹出下载对话框,提示保存文件,保存的文件名为该脚本的文件名。
<?php
header('Content-Disposition:attachment;filename:w.jpg');
readfile("w.jpg");
?>


filename:w.jpg指定保存文件名为w.jpg

2、
<?php
readfile("w.jpg");
?>


浏览器显示乱码。
<?php
readfile("w");
?>


w 和 w.jpg 是同一个文件,只是去掉了 .jpg 后缀。浏览器同样显示乱码。

可是直接将 文件 w 用浏览器打开或window自带的图片浏览器打开将会正常显示图片。说明本地文件 w 用浏览器打开时是通过文件内部的标识来判断文件类型,并解析出来显示。

3、

下面的代码可在浏览器直接显示(图片、pdf 等)。
<?php
header("Content-Type:image/jpeg");
readfile("w");//w为图片文件
?>


Content-Type:image/jpeg 告诉浏览器这是一张图片,你老老实实将它解析出图片显示出来。

如果出现下面的情况:
<?php
header("Content-Type:application/pdf");
readfile("w");//w为图片文件
?>


浏览器看到 Content-Type:application/pdf 后,就知道自己接收的内容是一个pdf文件,就按照pdf来解析,但人家 w 明明不是 pdf 啊,没办法,按规定来,各种乱码输出。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: