用php实现文件下载, 同时支持下断点形式
2012-07-20 19:04
736 查看
ob_start(); $size = filesize($file_dir . $file_name); // 输入文件标签 Header("Content-type: application/octet-stream"); Header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); Header("Content-length: " . $size); $encoded_filename = urlencode($down_name); $encoded_filename = str_replace("+", "%20", $encoded_filename); $ua = $_SERVER["HTTP_USER_AGENT"]; // 处理下载的时候的文件名 if (preg_match("/MSIE/", $ua)) { header('Content-Disposition: attachment; filename="' . $encoded_filename . '"'); } else if (preg_match("/Firefox/", $ua)) { header('Content-Disposition: attachment; filename*="utf8\'\'' . $down_name . '"'); } else { header('Content-Disposition: attachment; filename="' . $down_name . '"'); } $fp = fopen($file_dir . $file_name, "r"); // 打开文件 if (isset($_SERVER['HTTP_RANGE']) && ($_SERVER['HTTP_RANGE'] != "") && preg_match("/^bytes=([0-9]+)-/i", $_SERVER['HTTP_RANGE'], $match) && ($match[1] < $size)) { $range = $match[1]; fseek($fp, $range); 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($file_dir . $file_name)) . " GMT"); header("Accept-Ranges: bytes"); $rangesize = ($size - $range) > 0 ? ($size - $range) : 0; header("Content-Length:" . $rangesize); header("Content-Range: bytes " . $range . '-' . ($size - 1) . "/" . $size); // header("Connection: close" . "\n\n" ); //header("Connection: close"." "); } else { header("Content-Length: " . (string) ($size)); header("Accept-Ranges: bytes"); $range = 0; header("Content-Range: bytes " . $range . '-' . ($size - 1) . "/" . $size); } fpassthru($fp); ob_end_flush(); fclose($fp); exit;
相关文章推荐
- php实现的支持断点续传的文件下载类
- php实现的支持断点续传的文件下载类
- php实现的支持断点续传的文件下载类
- 实现php加速的eAccelerator dll支持文件打包下载
- 实现php加速的eAccelerator dll支持文件打包下载
- php实现文件下载(支持中文文名)
- php支持分块与断点续传文件下载功能代码
- PHP 大文件下载,文件传输,支持断点续传。 2g以上超大文件也有效
- 关于php支持分块与断点续传文件下载功能代码
- PHP实现文件下载断点续传详解
- php实现支持中文的文件下载功能示例
- php实现文件下载(支持中文文名)
- PHP实现文件下载断点续传详解
- php实现文件下载(支持中文文名)
- PHP实现文件下载断点续传详解
- PHP实现文件下载断点续传详解
- PHP实现文件下载断点续传详解
- php支持分块与断点续传文件下载功能代码
- 结合Resumable.js实现在Server端PHP支持的大文件上传、断点续传功能 推荐