php header()函数实现文件下载的实例

虽然php 中的header()函数 下载文件不支持断点续传功能但有时我们还真需要此功能,如我们下载txt,图片文件时如果直接是个连接估计是直接打开了而不是下载了,那么我们可如何实现下载呢。 /*** 文件下载**/header("Content-type:text/html;charset=utf-8");do
虽然php 中的header()函数 下载文件不支持断点续传功能但有时我们还真需要此功能,如我们下载txt,图片文件时如果直接是个连接估计是直接打开了而不是下载了,那么我们可如何实现下载呢。
/**
* 文件下载
**/
header("Content-type:text/html;charset=utf-8");
download('web/genban.txt', 'txt文件下载');
function download($file, $down_name){
$suffix = substr($file,strrpos($file,'.')); //获取文件后缀
$down_name = $down_name.$suffix; //新文件名,就是下载后的名字
//判断给定的文件存在与否
if(!file_exists($file)){
die("您要下载的文件已不存在,可能是被删除");
}
$fp = fopen($file,"r");
$file_size = filesize($file);
//下载文件需要用到的头
header("Content-type: application/octet-stream");
header("Accept-Ranges: bytes");
header("Accept-Length:".$file_size);
header("Content-Disposition: attachment; filename=".$down_name);
$buffer = 1024;
$file_count = 0;
//向浏览器返回数据
while(!feof($fp) && $file_count < $file_size){
$file_con = fread($fp,$buffer);
$file_count = $buffer;
echo $file_con;
}
fclose($fp);
}
?>
 
本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

相关文档推荐

php数据处理:数组根据某字段进行分组,实例代码如下: /** * @description:根据数据 * @param {dataArr:需要分组的数据;keyStr:分组依据} * @return: */ protected function dataGroup(array $dataArr,string $keyStr) :array { $newArr=[]; foreach ($data
$base64为图片的编码字符串 preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64, $result);$type = $result[2]; //获取图片的类型jpg png等$name = ”xxxx".".$type; //图片重命名$savepath = ‘C:/'.$name; //图片保存目录file_put_contents($savepat
文件发送的代码如下: ?$url = 'http://127.0.0.1/fujian/jieshou.php'; // 目标URL$filePath2 = iconv("utf-8","gb2312",'D:/MYOA/webroot/fujian/1/副本.txt'); // 文件路$filePath1 = iconv("utf-8","gb2312",'D:/MYOA/webroot/fujian/1/1.txt'); // 文件
PHP支持许多的函数,其中一些函数完全可以将字符串,制作为图片,将画布背景放上一些乱码,再挑选四个数字(你也可以添加字母,但是那样会比较花)。按照不同的角度放在画布上。具体代码如下: ?php//设置字符集header("Content-Type:text/html;charset=utf-8
php获取数组中某一个元素的值,并用逗号分隔 //打印方法function pp($ay){echo "pre";print_r($ay);}//定义数组$user_list=array('0'=['id'=1,'name'='刘德华'],'1'=['id'=2,'name'='张学友'],'2'=['id'=3,'name'='黎明'],'3'=['id'=4,'name'='郭富城']);pp(
serialize():将对象转化为字符串保存、unserialize():将字符串反转为对象(对应的类也必须包含) serialize -- 产生一个可存储的值的表示;返回字符串,此字符串包含了表示 value 的字节流,可以存储于任何地方 /* 串行化(序列化) */class Person { public $nam