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; } }