| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191 | 
							- <?php
 
- namespace plugins\qiniu\lib;
 
- use Qiniu\Auth;
 
- use Qiniu\Storage\UploadManager;
 
- class Qiniu
 
- {
 
-     private $config;
 
-     private $storageRoot;
 
-     /**
 
-      * @var \plugins\qiniu\QiniuPlugin
 
-      */
 
-     private $plugin;
 
-     /**
 
-      * Qiniu constructor.
 
-      * @param $config
 
-      */
 
-     public function __construct($config)
 
-     {
 
-         $pluginClass = cmf_get_plugin_class('Qiniu');
 
-         $this->plugin = new $pluginClass();
 
-         $this->config = $this->plugin->getConfig();
 
-         $this->storageRoot = $this->config['protocol'] . '://' . $this->config['domain'] . '/';
 
-     }
 
-     /**
 
-      * 文件上传
 
-      * @param string $file     上传文件路径
 
-      * @param string $filePath 文件路径相对于upload目录
 
-      * @param string $fileType 文件类型,image,video,audio,file
 
-      * @param array  $param    额外参数
 
-      * @return mixed
 
-      */
 
-     public function upload($file, $filePath, $fileType = 'image', $param = null)
 
-     {
 
-         $accessKey = $this->config['accessKey'];
 
-         $secretKey = $this->config['secretKey'];
 
-         $watermark = empty($this->config['styles_watermark']) ? 'watermark' : $this->config['styles_watermark'];
 
-         $upManager = new UploadManager();
 
-         $auth      = new Auth($accessKey, $secretKey);
 
-         $token     = $auth->uploadToken($this->config['bucket']);
 
-         $result = $upManager->putFile($token, $file, $filePath);
 
-         $previewUrl = $fileType == 'image' ? $this->getPreviewUrl($file, $watermark) : $this->getFileDownloadUrl($file);
 
-         $url        = $fileType == 'image' ? $this->getImageUrl($file, $watermark) : $this->getFileDownloadUrl($file);
 
-         return [
 
-             'preview_url' => $previewUrl,
 
-             'url'         => $url,
 
-         ];
 
-     }
 
-     /**
 
-      * 获取图片预览地址
 
-      * @param string $file
 
-      * @param string $style
 
-      * @return mixed
 
-      */
 
-     public function getPreviewUrl($file, $style = 'watermark')
 
-     {
 
-         $url = $this->getUrl($file, $style);
 
-         return $url;
 
-     }
 
-     /**
 
-      * 获取图片地址
 
-      * @param string $file
 
-      * @param string $style
 
-      * @return mixed
 
-      */
 
-     public function getImageUrl($file, $style = 'watermark')
 
-     {
 
-         $config = $this->config;
 
-         $url    = $this->storageRoot . $file;
 
-         if (!empty($style)) {
 
-             //$url = $url . $config['style_separator'] . $style;
 
-         }
 
-         return $url;
 
-     }
 
-     /**
 
-      * 获取文件地址
 
-      * @param string $file
 
-      * @param string $style
 
-      * @return mixed
 
-      */
 
-     public function getUrl($file, $style = '')
 
-     {
 
-         $config = $this->config;
 
-         $url    = $this->storageRoot . $file;
 
-         if (!empty($style)) {
 
-             //$url = $url . $config['style_separator'] . $style;
 
-         }
 
-         return $url;
 
-     }
 
-     /**
 
-      * 获取文件下载地址
 
-      * @param string $file
 
-      * @param int    $expires
 
-      * @return mixed
 
-      */
 
-     public function getFileDownloadUrl($file, $expires = 3600)
 
-     {
 
-         $accessKey = $this->config['accessKey'];
 
-         $secretKey = $this->config['secretKey'];
 
-         $auth      = new Auth($accessKey, $secretKey);
 
-         $url       = $this->getUrl($file);
 
-         $filename  = db('asset')->where('file_path', $file)->value('filename');
 
-         $url = $auth->privateDownloadUrl($url, $expires);
 
-         if (!empty($filename)) {
 
-             $url .= '&attname=' . urlencode($filename);
 
-         }
 
-         return $url;
 
-     }
 
-     /**
 
-      * 获取云存储域名
 
-      * @return mixed
 
-      */
 
-     public function getDomain()
 
-     {
 
-         return $this->config['domain'];
 
-     }
 
-     /**
 
-      * 获取文件相对上传目录路径
 
-      * @param string $url
 
-      * @return mixed
 
-      */
 
-     public function getFilePath($url)
 
-     {
 
-         $parsedUrl = parse_url($url);
 
-         if (!empty($parsedUrl['path'])) {
 
-             $url            = ltrim($parsedUrl['path'], '/\\');
 
-             $config         = $this->config;
 
-             //$styleSeparator = $config['style_separator'];
 
-             $styleSeparator = '!';
 
-             $styleSeparatorPosition = strpos($url, $styleSeparator);
 
-             if ($styleSeparatorPosition !== false) {
 
-                 $url = substr($url, 0, strpos($url, $styleSeparator));
 
-             }
 
-         } else {
 
-             $url = '';
 
-         }
 
-         return $url;
 
-     }
 
-     /**
 
-      * 获取上传token
 
-      * @return mixed
 
-      */
 
-     public function gettoken(){
 
-         $config = $this->config;
 
-         $accessKey = $config['accessKey'];
 
-         $secretKey = $config['secretKey'];
 
-         $domain = $config['domain'];
 
-         
 
-         $auth      = new Auth($accessKey, $secretKey);
 
-         $token     = $auth->uploadToken($config['bucket']);
 
-         $data=[
 
-             'token'=>$token,
 
-             'domain'=>$domain,
 
-         ];
 
-         
 
-         return $data;
 
-     }
 
- }
 
 
  |