当前访客身份:游客 [ 登录 | 加入 OSCHINA ]

代码分享

当前位置:
代码分享 » PHP  » 文件处理和文本解析
兔bug

php实现文件下载!

兔bug 发布于 2011年07月14日 11时, 6评/38108阅
分享到: 
收藏 +0
2
<无详细内容>
标签: PHP 文件下载

代码片段(1) [全屏查看所有代码]

1. [代码]实现php文件安全下载!     跳至 [1] [全屏预览]

public function downloads($name){
		$name_tmp = explode("_",$name);
		$type = $name_tmp[0];
		$file_time = explode(".",$name_tmp[3]);
		$file_time = $file_time[0];
		$file_date = date("Y/md",$file_time);
		$file_dir = SITE_PATH."/data/uploads/$type/$file_date/";	
		
		if (!file_exists($file_dir.$name)){
			header("Content-type: text/html; charset=utf-8");
			echo "File not found!";
			exit; 
		} else {
			$file = fopen($file_dir.$name,"r"); 
			Header("Content-type: application/octet-stream");
			Header("Accept-Ranges: bytes");
			Header("Accept-Length: ".filesize($file_dir . $name));
			Header("Content-Disposition: attachment; filename=".$name);
			echo fread($file, filesize($file_dir.$name));
			fclose($file);
		}
	}


开源中国-程序员在线工具:Git代码托管 API文档大全(120+) JS在线编辑演示 二维码 更多»

发表评论 回到顶部 网友评论(6)

  • 1楼:crazymus 发表于 2013-08-02 23:06 回复此评论
    请问这样做的好处是什么?文件名直接下载会有什么安全问题?
  • 2楼:DK491 发表于 2013-08-05 15:58 回复此评论

    引用来自“crazymus”的评论

    请问这样做的好处是什么?文件名直接下载会有什么安全问题?
    有些文件会直接打开,抑或者用PHP下载文件,可以把整站下载下来。
  • 3楼:流海 发表于 2013-09-24 18:53 回复此评论
    但是发现有个问题,我这边也是用的这种代码,但是pdf文件无法在线打开,很多文件都必须保存后才能打开,求解。看了网络的这个,貌似不同的扩展名都有自己对应的标示,只是这样写没有问题吗?
  • 4楼:橡树 发表于 2014-03-07 11:11 回复此评论
    这种方法太耗资源了!
  • 5楼:crazymus 发表于 2014-11-05 10:21 回复此评论

    引用来自“DK491”的评论

    引用来自“crazymus”的评论

    请问这样做的好处是什么?文件名直接下载会有什么安全问题?
    有些文件会直接打开,抑或者用PHP下载文件,可以把整站下载下来。
    嗯,你说的有道理,可是如果是大文件呢,这样处理的效率是否会很低?
  • 6楼:存在如棘 发表于 2016-08-03 12:44 回复此评论
    我用这个方法碰到一个问题,文件下载下来后,打开时总是报“文件已损坏”错误。请问可能是什么原因?
开源从代码分享开始 分享代码
兔bug的其它代码 全部(2)...