将来的你, 肯定会感激现在拼命的自己。
  • php
  •  2015.02.12 11:14
  •  275

php下载文件方法

一种文件流方式的简单下载文件方法。

   public function download( $file ) {
       $file = (string)$this->_request->getQueryParam('file', '');
       $name = (string)$this->_request->getQueryParam('name', '');
       if (!isset($file)) {
              throw new BluefinException("无效的下载地址。");
       }
       $file = ROOT . '/www/' . $file;
       $file_handler = fopen($file, "rb");
       if (false === $file_handler) {
            throw new BluefinException("文件不存在。");
       }
       if (!isset($name)) {
            $name = substr($file, strrpos('/', $file));
       }
       $fileSize = filesize($file);
       header("content-type:text/html; charset=utf-8");
       header("Pragma: public");
       header("Expires: 0");
       header("Content-type: application/octet-stream");
       header("Accept-Ranges: bytes");
       header("Accept-Length: " . $fileSize);
       header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
       if ( strpos( $_SERVER['HTTP_USER_AGENT'], "MSIE" ) ) {
         header( "Content-Disposition: attachment; filename=" . urlencode( $name ) ); //如果是ie存为的名字要urlencode
       } else {
         header( "Content-Disposition: attachment; filename=" . $name ); //存为的名字
       }
       echo fread($file_handler,$fileSize);
       fclose($file_handler);
       exit;
   }

来源:http://www.hackbase.com/tech/2009-11-11/57873.html


 钟永标

个人头像


 热门推荐


 热门阅读