A-A+
php下载任意指定(如zip/ucm)文件代码
想提供下载但又不想放出指定文件的路径。通常通过php读取文件生成网络流,再输出到页面即产生下载响应。
主要函数:fread(PHP 3, PHP 4, PHP 5)
fread -- 读取文件(可安全用于二进制文件)
说明
string fread ( int handle, int length )
fread() 从文件指针 handle 读取最多 length 个字节。该函数在读取完 length 个字节数,或到达 EOF 的时候,或(对于网络流)当一个包可用时就会停止读取文件,视乎先碰到哪种情况。
注: 如果只是想将一个文件的内容读入到一个字符串中,用 file_get_contents(),它的性能比上面的代码好得多。
- <?php
- $filename = "c:fileszhoz_com_test.rar";
- // 文件不存在,就退出并输出日志
- if (!file_exists($filename)) {
- error_log("Error: file " . $file_path . " not found!", 0);
- exit;
- }
- $filesize=filesize($filename);
- header("Content-Type:text/plain");
- header("Accept-Ranges:bytes");
- header("Accept-Length:".filesize($filename));
- header("Content-Disposition:attachment;filename=".basename($filename));
- @$fp = fopen($filename, 'rb');
- @flock($fp, 2);
- $attachment = @fread($fp, $filesize);
- @fclose($fp);
- // 输入文件
- echo $attachment;
- ?>