| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- <?php
- /**
- * 重庆赤晓店信息科技有限公司
- * https://www.chixiaodian.com
- * Copyright (c) 2023 赤店商城 All rights reserved.
- */
- namespace app\modules\admin\models\file;
- use Curl\Curl;
- use yii\base\Model;
- class FileForm extends Model{
- /**
- * @param URL转换本地绝对路径
- * @param string $url 目标地址
- * @param addtime 2021年9月1日
- */
- public function getlocalURL($val)
- {
- $pathinfos = pathinfo($val);
- $tzm = $pathinfos['extension'];
- $save_dir = "./web/temp/"; // 服务资源目录
- $filename = date('Ymd') . time() . '.' . $tzm; // 自定义名称
- # 检测文件大小
- $Size = $this->getFileSize($val);
- $content_type = $this->file_type_detect($val);
- $file_name = str_replace(\Yii::$app->request->hostInfo,\Yii::$app->basePath,$val);
- // 超过10M不保存
- return [
- 'filename'=>$file_name, //图片相对于网站根目录的路径
- 'content-type'=>$content_type, //文件类型
- 'filelength'=>$Size, //图文大小,
- 'name'=>'media'
- ];
- }
- /**
- * @param string $target_url 上传目标地址
- * @param $file_info
- * @return bool|string
- */
- public function curlUploadFile(string $target_url, $file_info){
- $url=$target_url;
- $ch1 = curl_init ();
- $data = [$file_info['name'] => new \CURLFile($file_info['filename'])];
- curl_setopt ( $ch1, CURLOPT_URL, $url );
- curl_setopt ( $ch1, CURLOPT_POST, 1 );
- curl_setopt ( $ch1, CURLOPT_RETURNTRANSFER, 1 );
- curl_setopt ( $ch1, CURLOPT_CONNECTTIMEOUT, 5 );
- curl_setopt ( $ch1, CURLOPT_SSL_VERIFYPEER, FALSE );
- curl_setopt ( $ch1, CURLOPT_SSL_VERIFYHOST, false );
- curl_setopt ( $ch1, CURLOPT_POSTFIELDS, $data );
- $result = curl_exec ( $ch1 );
- curl_close ( $ch1 );
- return $result;
- }
- /**
- * 检测文件大小
- * addtime 2021年9月1日
- */
- public function getFileSize($url)
- {
- $res = get_headers($url, true);
- $filesize = round($res['Content-Length'] , 2); //四舍五入获取文件大小,单位M
- return $filesize;
- }
- public function file_type_detect($srcPath){
- $types = array(
- 6677 => 'bmp',
- 7173 => 'gif',
- 7368 => 'mp3',
- 13780 => 'png',
- 255216 => 'jpg',
- );
- $curl_obj = new cURL(false);
- // $binary = $curl_obj->get($srcPath);
- $binary = file_get_contents($srcPath);
- $bytes = substr($binary, 0, 2);
- $head = @unpack('C2char', $bytes);
- $typeCode = intval($head['char1'].$head['char2']);
- return $types[$typeCode] ?? $typeCode;
- }
- }
|