PHP下载文件的函数实例代码_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下载文件的函数实例代码的相关知识,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索php下载文件函数
php文件函数
php 文件上传实例代码、php实例代码、php分页代码实例、php接口开发实例代码、php ajax实例代码,以便于您获取更多的相关知识。

时间: 2024-12-05 18:20:07

PHP下载文件的函数实例代码_php实例的相关文章

php实现当前页面点击下载文件的实例代码_php实例

php控制器中代码 public function downFile($path = ''){ if(!$path) header("Location: /"); download($path); } download文件下载函数代码 function download($file_url,$new_name=''){ if(!isset($file_url)||trim($file_url)==''){ echo '500'; } if(!file_exists($file_url)

用PHP读取超大文件的实例代码_php实例

去年年底的各种网站帐号信息的数据库泄漏,很是给力啊,趁机也下载了几个数据库,准备学学数据分析家来分析一下这些帐号信息.虽然这些数据信息都已经被"整理"过的,不过自己拿来学习也挺有用的,毕竟有这么大的数据量. 数据量大带来的问题就是单个文件很大,能够打开这个文件相当不容易,记事本就不要指望了,果断死机.用MSSQL的客户端也打不开这么大的SQL文件,直接报内存不足,原因据说是MSSQL在读取数据的时候,是一次性地将读取到的数据放在内存中,如果数据量过大,而内存不足,则会直接导致系统瘫掉.

php文件操作实例代码_php实例

先送上一段简单的实例 复制代码 代码如下: <?php if(!is_dir('txt'))//判断txt是否为文件夹目录 { mkdir('txt');//创建名为txt的文件夹目录 $open=fopen('txt/in.txt',"w+");//以读写的方式打开文件 if(is_writable('txt/in.txt'))//如果此文件为可写模式 { if(fwrite($open,"今天是美好的一天,一定要开心哦!<- ->")>0

php导出csv文件,可导出前导0实例代码_php实例

实例一:可导出前导0 //导出csv格式文件 $data数据 $title_arr标题 $file_name文件名 function exportCsv($data,$title_arr,$file_name=''){ ini_set("max_execution_time", "3600"); $csv_data = ''; /** 标题 */ $nums = count($title_arr); for ($i = 0; $i < $nums - 1; +

thinkphp的dump函数无输出实例代码_php实例

Thinkphp的dump函数 /** * 浏览器友好的变量输出 * @param mixed $var 变量 * @param boolean $echo 是否输出 默认为True 如果为false 则返回输出字符串 * @param string $label 标签 默认为空 * @param boolean $strict 是否严谨 默认为true * @return void|string */ function dump($var, $echo = true, $label = nul

关于PHP中字符串与多进制转换函数的实例代码_php实例

转换函数 /** * [字符串转换为(2,8,16进制)ASCII码] * @param string $str [待处理字符串] * @param boolean $encode [字符串转换为ASCII|ASCII转换为字符串] * @param string $intType [2,8,16进制标示] * @return string byte_str [处理结果] * @author alexander */ function strtoascii($str, $encode=true,

php 文件上传实例代码_php实例

项目结构: 上传首页: 上传效果: fileupload.php 复制代码 代码如下: <form action="" enctype="multipart/form-data" method="post" name="uploadfile">上传文件:<input type="file" name="upfile" /><br> <input

使用phpexcel类实现excel导入mysql数据库功能(实例代码)_php实例

下载phpexcel文件,地址:phpexcel.codeplex.com/ 代码示例 require_once 'phpexcel/Classes/PHPExcel.php'; require_once 'phpexcel/Classes/PHPExcel/IOFactory.php'; require_once 'phpexcel/Classes/PHPExcel/Reader/Excel5.php'; $objReader = PHPExcel_IOFactory::createReade

PHP Curl模拟登录微信公众平台、新浪微博实例代码_php实例

使用curl之前先打开curl配置,具体方式百度一下就知道,开启curl扩展.密码用md5加密,这是经过测试成功的,把用户跟密码改成你的就行了. 下面一段代码给大家介绍php使用curl模拟登录微信公众平台,具体代码如下所示: <?php //模拟微信登入 $cookie_file = tempnam('./temp','cookie'); $login_url = 'https://mp.weixin.qq.com/cgi-bin/login'; $pwd = md5("********