温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

PHP如何使用函数实现下载文件功能

发布时间:2021-08-31 13:53:18 阅读:155 作者:小新 栏目:开发技术
PHP开发者专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

这篇文章给大家分享的是有关PHP如何使用函数实现下载文件功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

通过函数完成下载文件的PHP功能代码

function download($url$filename// 获得文件大小, 防止超过2G的文件, 用sprintf来读 
$filesize sprintf "%u"filesize $url ) ); 
if (! $filesize) { 
return; 
} 
header "Content-type:application/octet-stream\n" ); //application/octet-stream 
header "Content-type:unknown/unknown;" ); 
header "Content-disposition: attachment; filename=\"" . $filename "\"" ); 
header 'Content-transfer-encoding: binary' ); 
if ($range getenv 'HTTP_RANGE' )) { // 当有偏移量的时候,采用206的断点续传头 
$range explode '='$range ); 
$range $range [1]; 
header "HTTP/1.1 206 Partial Content" ); 
header "Date: " . gmdate "D, d M Y H:i:s" ) . " GMT" ); 
header "Last-Modified: " . gmdate "D, d M Y H:i:s"filemtime $url ) ) . " GMT" ); 
header "Accept-Ranges: bytes" ); 
header "Content-Length:" . ($filesize $range) ); 
header "Content-Range: bytes " . $range . ($filesize 1) . "/" . $filesize ); 
header "Connection: close" . "\n\n" ); 
else { 
header "Content-Length:" . $filesize "\n\n" ); 
$range 0; } 
loadFile $url );}
function loadFile($filename$retbytes true$buffer ''$cnt 0$handle fopen $filename'rb' ); 
if ($handle === false) { return false; 
} while ( ! feof $handle ) ) { 
$buffer fread $handle1024 * 1024 ); 
echo $bufferob_flush (); 
flush (); 
if ($retbytes) { 
$cnt += strlen $buffer ); 
} 
} 
$status fclose $handle ); 
if ($retbytes && $status) { 
return $cnt// return num. bytes delivered like readfile() does. return $status;}

输入2个参数即可完成下载 download($url, $filename)

感谢各位的阅读!关于“PHP如何使用函数实现下载文件功能”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

php
AI

开发者交流群×