温馨提示×

温馨提示×

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

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

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

发布时间:2021-08-31 13:53:18 来源:亿速云 阅读:179 作者:小新 栏目:开发技术

这篇文章给大家分享的是有关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 ( $handle, 1024 * 1024 );  echo $buffer;  ob_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如何使用函数实现下载文件功能”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

向AI问一下细节

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

php
AI