| 
 | 
 | 
 <?php
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
 namespace Controller;
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
 use Lib\Err;
 | 
| 
 | 
 | 
 use Lib\Imap\ImapConfig;
 | 
| 
 | 
 | 
 use Lib\Imap\ImapPool;
 | 
| 
 | 
 | 
 use Lib\Mail\MailFun;
 | 
| 
 | 
 | 
 use Model\folderSql;
 | 
| 
 | 
 | 
 use Model\listsSql;
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
 /**
 | 
| 
 | 
 | 
  * 附件预览
 | 
| 
 | 
 | 
  * @author:dc
 | 
| 
 | 
 | 
  * @time 2025/8/19 17:43
 | 
| 
 | 
 | 
  * Class Attachment
 | 
| 
 | 
 | 
  * @package Controller
 | 
| 
 | 
 | 
  */
 | 
| 
 | 
 | 
 class Attachment extends Base {
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
     public function show(){
 | 
| 
 | 
 | 
         $path = app()->request('path');
 | 
| 
 | 
 | 
         $filename = ROOT_PATH.$path;
 | 
| 
 | 
 | 
         if(file_exists($filename)){
 | 
| 
 | 
 | 
             $file = new \SplFileInfo($filename);
 | 
| 
 | 
 | 
             if(in_array($file->getExtension(),['jpg','jpeg','png','gif','mp4','mp3','pdf','txt','doc','docx','xls','xlsx','ppt','pptx','eml'])){
 | 
| 
 | 
 | 
                 header("Content-type: ".$file->getMTime());
 | 
| 
 | 
 | 
                 header("Content-Disposition: inline; filename=".$file->getFilename());
 | 
| 
 | 
 | 
                 header("Content-Length: ".$file->getSize());
 | 
| 
 | 
 | 
                 header("Cache-Control: max-age=0");
 | 
| 
 | 
 | 
                 header("Last-Modified: ".$file->getMTime());
 | 
| 
 | 
 | 
                 header("Expires: " . gmdate("D, d M Y H:i:s", time() + 3600 * 24 * 365) . " GMT");
 | 
| 
 | 
 | 
                 return file_get_contents($file->getPathname()) ;
 | 
| 
 | 
 | 
             }
 | 
| 
 | 
 | 
             return "<div style='text-align: center'>“".$file->getFilename()."“ 当前附件不支持预览</div>";
 | 
| 
 | 
 | 
         }
 | 
| 
 | 
 | 
         return "<div style='text-align: center'>404 附件不存在</div>";
 | 
| 
 | 
 | 
     }
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
 }
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
  | 
...
 | 
...
 | 
 |