Ejemplo n.º 1
0
 /**
  * Action getfile
  * download file
  * 文件下载action
  */
 public function actionGetfile()
 {
     if (Yii::$app->request->isGet) {
         $file_id = $_GET['file_id'];
         $file = UserFile::findOne($file_id);
         $logService = new LogService();
         $logService->downloadLog($file_id);
         Header("Content-type: " . $file->filetype);
         Header("Accept-Ranges: bytes");
         Header("Accept-Length: " . $file->length);
         Header("Content-Disposition: attachment; filename=" . $file->filename);
         /*
                     Header("Content-Disposition:  attachment;  filename=".$model->filename);
                     header("Content-Transfer-Encoding:binary");
                     header('Content-Length:'.$model->filesize);
                     header('Content-type:'.$model->filetype);
                     header('Expires:0');
                     header('Content-Type:application-x/force-download');*/
         $fp = $file->file->getResource();
         fseek($fp, 0);
         while (!feof($fp)) {
             set_time_limit(0);
             echo fread($fp, 1024);
             flush();
             ob_flush();
         }
         fclose($fp);
     }
 }