PHP下载隐藏文件真实地址路径方法
作者:Admin采集插件
时间:2023-04-08
浏览:3
分类:php教程
来源:互联网收录
方法一,采用fread()函数切片下载,适合大流量下载。可以限速下载,但容易导致内存溢出,下载失败。
public function fileUrl($url) { $file = 'uploads/files/'.$url; if (file_exists(\dirname(__FILE__).$file)) { return $this->error("文件不存在"); } // 新文件名 $filename = explode('.', $file); $filename = array_pop($filename); $filename = time().'.'.$filename; //下载文件 $filesize = filesize($file) 1000; header('Content-Description:File Transfer'); header("Content-Type:application/octet-stream"); header('Content-Transfer-Encoding:binary'); header("Accept-Ranges: bytes"); header('Expires:0'); header('Cache-Control:must-revalidate'); header('Pragma:public'); header("Content-Length:".$filesize); header("Content-Disposition:attachment;filename=".$filename); $fp = fopen($file, "rb"); fseek($fp,0); while (!feof($fp)) { set_time_limit(0); print (fread($fp, 1024 * 8)); flush(); ob_flush(); } fclose($fp); exit (); }
方法二,不限速不切片无限制的形势下载,适合小文件下载。
public function fileUrl2($url) { $file = 'uploads/files/'.$url; if (file_exists(\dirname(__FILE__).$file)) { return $this->error("文件不存在"); } // 新文件名 $filename = explode('.', $file); $filename = array_pop($filename); $filename = time().'.'.$filename; header('Content-type:application/octet-stream'); header('Content-Disposition:attachment;filename='.$filename); header('Content-Length:'.filesize($file)); readfile($file); }
本文章来自互联网,有问题请联系QQ:1739635
免责声明:1.凡本站注明“来源:XXX(非
CMS自动采集助手
)”的作品,均转载自其它媒体,所载的文章、图片、音频视频文件等资料的版权归版权所有人所有,如有侵权,请联系1321198484@qq.com
处理;2.凡本站转载内容仅代表作者本人观点,与CMS自动采集助手
无关。