PHP下载原理及CI下载原理,如何进行收费下载,请自己扩展~

	
  • $obj_url=$this->db->query("select?url?from?dowloads?where?id=$download_id")
  • ->row(); ?
  • $url=$obj_url->url; ?
  • $file?=$_SERVER['DOCUMENT_ROOT'].$url; ?
  • if(file_exists($file)){ ?
  • $filename=?basename($url); ?
  • //文件的类型 ?
  • header("Content-type:?application/octet-stream"); ?
  • //下载显示的名字 ?
  • header("Content-Disposition:?attachment;?filename=".$filename); ?
  • readfile($file); ?
  • }else{ ?
  • echo?"不存在"; ?
  • } ?
  • exit();??
  • //注意header前面不能有任何输出,否则下载的图片不会显示
    利用CI框架下载
    加载这个辅助函数用下面的代码加载这个辅助函数

    	
  • $this->load->helper('download');??
  • 下面的函数就有效:

    force_download(‘filename‘, ‘data‘)

    服务器产生能下载数据到你桌面的头. 这对你下载文件有帮助. 第一个参数是下载文件的文件名, 第二个参数是文件数据. Example:

    	
  • $data?=?'Here?is?some?text!'; ?
  • $name?=?'mytext.txt'; ?
  • force_download($name,?$data);??
  • 如果你想在你的服务器上下载一个存在文件,你需要将它读到一个字符串中:

    	
  • $data?=?file_get_contents("http://www.chhua.com/path/to/photo.jpg");?//?读文件内容 ?
  • $name?=?'myphoto.jpg'; ?
  • force_download($name,?$data);?