网宿云结合thinkphp3.2图片上传

额,最近呢,再为公司写上传这一块,用上了网宿科技的云存储,然后发现网上的资料太少了,文档也写的挺模糊的,花了一些时间去写,感觉挺好的所以给大家整理整理,额小白一个,写的不好多多指出。废话不多说上代码。

这是他们的上传模式,和七牛差不多
这是
config里面要配置的东西
在这里插入图片描述

先用thinkphp自带的上传,可以把图片限制啊,啥的放里面。

我说有的配置都放config里面了,这样方便改。
					$bucket = C('BucketName');#你的空间名字
					$file['filename'] = 'Uploads/images/' . $info['Filedata']['savename'];#文件名字
					$str['scope']=$bucket.':'.$file['filename'];#文件名字
					$str['deadline']='1906429276000';#截止时间,尽量久点,这个是token起时间
					#这个$str可以写挺多的我会把图片,放下面
					$file['file'] = $_SERVER['DOCUMENT_ROOT'] . '/Uploads/images/' . $info['Filedata']['savename'];// 文件
					$info['Filedata']['savename'] = $this->uploadwangsu($file,$str);#拿到图片了

这个是$str里面可以放的东西,一定要转成json格式
在这里插入图片描述
https://wcs.chinanetcenter.com/document/API/Token/UploadToken 这个是图片解释的详细地址

#这些不能少
use Wcs\Upload\ResumeUploader;
use Wcs\Http\PutPolicy;
use Wcs\Utils;
use Wcs\Upload\Uploader;
		// 网宿上传
	private function uploadwangsu($file,$str)
	{
		require('./Wangsu/autoload.php');
		require('./Wangsu/src/Wcs/Upload/Uploader.php');
		$localFile =$file['file'];
		$bucketName=C('BucketName');#名字
		$accessKey = C('WsAccessKey');#ak
		$secretKey = C('WsSecretKey');#sk
		$WCS_GET_URL = C('WCS_GET_URL');#下载,你配置的域名
		$WCS_PUT_URL = C('WCS_PUT_URL');#上传,在他们后台可以看到的
		$WCS_MGR_URL = C('WCS_MGR_URL');#管理,在他们后台可以看到的
		$str=json_encode($str);#转josn
		// 获取上传凭证
		$encodePutPolicy = $this->url_safe_base64_encode($str);#转码
		$str = hash_hmac('sha1', $encodePutPolicy, $secretKey, false);
		$encodeSign = $this->url_safe_base64_encode($str);
		$token = $accessKey.':'.$encodeSign.':'.$encodePutPolicy;#拿到token
		// 鉴权
		$client = new Uploader($token);
		$resp = $client->upload_return(str_replace("",'',$localFile));#上传
		if ($resp) {
			unlink($file['file']);
			return 'http'.'://'.$WCS_GET_URL.'/'.$file['filename'];#地址,我是拼接
		}
	}
	
// 转编码,我木有用引用官方的,看不多直接拿出来了
	public function url_safe_base64_encode($str)
    {
        $find = array('+', '/');
        $replace = array('-', '_');
        return str_replace($find, $replace, base64_encode($str));
    }

!!!!sdk包里也有config也要配置
https://wcs.chinanetcenter.com/document/SDK 这是网宿官网的sdk包
总结:
1.使用thinkphp自带上传,拿到地址
2.然后配置上传凭证,$str里的记得转json格式。
3.然后鉴权
4.上传成功

嘻嘻 要是有帮助可以打赏一下小弟~~~~
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44452446/article/details/90726186