欢迎大家访问我的博客 blog.ayla1688.cool
上代码之前,我想吐槽一下七牛云的DEMO, 写的确实不咋地。
废话不多说,咱们开始吧。
项目框架TP5.1 , 之前别人写了一点,懒得改七牛云的SDK目录,强迫症患者将就着看看吧,
qiniu的phpSDK 放在了vendor文件夹下。
1. 持久化处理上传及生成缩略图。 由于上传的图片较大 20M + , 所以采用了持久化处理上传,putfile 20M的图片是不让你上传的。
newFilename 就是保存在七牛云上的原图key,
oldFilePath 服务器上图片的地址,服务器缓存中的地址
persistentops : 对图片进行的操作,如果有多个操作则用 , 隔开。
persistentNotifyUrl 是异步返回的通知地址, 在这个方法中我们要进行的操作就是保存缩略图到服务器并删除七牛云上的缩略图。
完成的操作:设置了原图的key, 将原图保存后,生成 200*200的缩略图保存在七牛云。
private function uploadImgPost($newFilename, $oldFilepath){
set_time_limit(0);
$t1 = microtime(true);
require_once APP_PATH . '/../vendor/qiniu/autoload.php';
// 构建鉴权对象
$auth = new Auth($this->accessKey, $this->secretKey);
//生成保存文件的key
$explode = explode(".", $newFilename);
$thumbKey = $explode[0] . "_thumb" .".". $explode[1];
$entry = $this->bucket .":". $thumbKey;
$encodedEntryURI = \Qiniu\base64_urlSafeEncode($entry);
$array = [
'persistentOps'=>'imageView2/2/w/200/h/200/q/70/ignore