| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158 | 
							- <?php
 
- /**
 
-  * Created by PhpStorm.
 
-  * User: Administrator
 
-  * Date: 2022/8/10
 
-  * Time: 18:50
 
-  */
 
- namespace file;
 
- use network\CurlHelper;
 
- use network\IpHelper;
 
- class FileHelper
 
- {
 
-     /**
 
-      * 读取文件文字内容
 
-      * @param $filePath
 
-      * @return mixed
 
-      */
 
-     public static function read($filePath)
 
-     {
 
-         return file_get_contents($filePath);
 
-     }
 
-     /**
 
-      * 创建并保存文件
 
-      * @param $filePath [指定目录]
 
-      * @param $content [文字内容]
 
-      * @throws \Exception
 
-      */
 
-     public static function save($filePath, $content)
 
-     {
 
-         if (file_exists($filePath)) {//file_exists检查文件是否存在
 
-             $File = new \think\template\driver\File();
 
-             $File->write($filePath, $content);
 
-         } else {
 
-             DirHelper::makeDir(PathHelper::getDir($filePath));//创建目录
 
-             if (false == file_put_contents($filePath, $content) && !empty($content)) {
 
-                 throw new \Exception('创建文件失败,请检查目录权限');
 
-             }
 
-         }
 
-     }
 
-     /**
 
-      * 重命名文件
 
-      * @param $old_path
 
-      * @param $new_path
 
-      * @param $overWrite [如果新的文件已存在,false提示异常,true覆盖]
 
-      * @return bool
 
-      * @throws \Exception
 
-      */
 
-     public static function rename($old_path, $new_path, $overWrite = false)
 
-     {
 
-         $old_path = replaceDS($old_path);
 
-         $new_path = replaceDS($new_path);
 
-         if (!file_exists($old_path)) {
 
-             throw new \Exception("old_path not exits:" . $old_path);
 
-         }
 
-         if (file_exists($new_path)) {
 
-             if ($overWrite) {
 
-                 unlink($new_path);
 
-             } else {
 
-                 throw new \Exception("new_path exits:" . $new_path);
 
-             }
 
-         }
 
-         @rename($old_path, $new_path);
 
-         return true;
 
-     }
 
-     /**
 
-      * 输出文件到浏览器下载
 
-      * @param $filepath [文件物理路径]
 
-      */
 
-     public static function downloadFile($filepath)
 
-     {
 
-         if (file_exists($filepath)) {
 
-             $filename = PathHelper::getFilename($filepath);
 
-             //打开文件
 
-             $file1 = fopen($filepath, "r");
 
-             //输入文件标签
 
-             Header("Content-type: application/octet-stream");
 
-             Header("Accept-Ranges: bytes");
 
-             Header("Accept-Length: " . filesize($filepath));
 
-             Header("Content-Disposition: attachment; filename=$filename");
 
-             echo fread($file1, filesize($filepath));
 
-             fclose($file1);
 
-         }
 
-         echo "文件不存在,请联系客服处理!";
 
-     }
 
-     /**
 
-      * 采集文件
 
-      * @param $downlink [文件下载地址]
 
-      * @param $savePath [文件保存目录路径]
 
-      * @param $saveName [文件保存名称]
 
-      * @return string [返回文件物理路径]
 
-      */
 
-     public static function fetchDownFile($downlink, $savePath, $saveName)
 
-     {
 
-         DirHelper::makeDir($savePath);
 
-         $loaclFile = $savePath . $saveName;
 
-         if (startWith($downlink, 'https')) {
 
-             $user_agent = 'Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)';
 
-             $referer = 'https://www.baidu.com/s?wd=%E7%99%BE%E5%BA%A6&rsv_spt=1&rsv_iqid=0xe5a39f3b0003c303&issp=1&f=8&rsv_bp=0&rsv_idx=2&ie=utf-8&tn=baiduhome_pg&rsv_enter=1&rsv_sug3=6&rsv_sug1=4&rsv_sug7=100';
 
-             $randip = IpHelper::getRandIp();
 
-             $arrContextOptions = [
 
-                 'ssl' => [
 
-                     'verify_peer' => false,
 
-                     'verify_peer_name' => false,
 
-                 ],
 
-                 'http' => [
 
-                     'method' => "GET",
 
-                     'header' => "User-Agent: {$user_agent}\r\nReferer: {$referer}\r\nX-FORWARDED-FOR: {$randip}\r\nCLIENT-IP: {$randip}\r\n",
 
-                     'timeout' => 10,
 
-                 ]
 
-             ];
 
-             //下载文件忽略ssl
 
-             $response = file_get_contents($downlink, false, stream_context_create($arrContextOptions)) || die('服务器不支持采集');
 
-             file_put_contents($loaclFile, $response);
 
-         } else {
 
-             ob_start(); //打开输出
 
-             readfile($downlink); //输出图片文件
 
-             $img = ob_get_contents(); //得到浏览器输出
 
-             ob_end_clean(); //清除输出并关闭
 
-             file_put_contents($loaclFile, $img);
 
-         }
 
-         return $loaclFile;
 
-     }
 
-     /**
 
-      * 采集文件
 
-      * @param $downlink [文件下载地址]
 
-      * @param $savePath [文件保存目录路径]
 
-      * @param $saveName [文件保存名称]
 
-      * @return string [返回文件物理路径]
 
-      */
 
-     public static function fetchDownFile2($downlink, $savePath, $saveName)
 
-     {
 
-         DirHelper::makeDir($savePath);
 
-         $loaclFile = $savePath . $saveName;
 
-         $curl = new CurlHelper($downlink);
 
-         $randip = IpHelper::getRandIp();
 
-         $curl->setHeader([
 
-             'CLIENT-IP:' . $randip,
 
-             'X-FORWARDED-FOR:' . $randip
 
-         ]);
 
-         $curl->setReferer("https://www.baidu.com/s?wd=%E7%99%BE%E5%BA%A6&rsv_spt=1&rsv_iqid=0xe5a39f3b0003c303&issp=1&f=8&rsv_bp=0&rsv_idx=2&ie=utf-8&tn=baiduhome_pg&rsv_enter=1&rsv_sug3=6&rsv_sug1=4&rsv_sug7=100");
 
-         $curl->exec();
 
-         $response = $curl->getResponse();
 
-         if ($response && 200 == $curl->getHttpCode() && !$curl->getError()) {
 
-             file_put_contents($loaclFile, $response);
 
-         }
 
-         return $loaclFile;
 
-     }
 
- }
 
 
  |