项目原因

不告诉你,反正需要把腾讯云的万象优图整合进来。

准备

下载PHP版的万象优图的SDK
下载地址:https://github.com/tencentyun/image-php-sdk

文件层次

git clone 后的文件架构如下

这里写图片描述
这里写图片描述

文件后缀

修改Tencentyun文件夹下面的7个文件的文件名为*.class.php.

这里写图片描述
这里写图片描述

导入

将修改好的sdk导入到项目中去,我这里导入到了Application->Home->Controller->PhotoServer中了,如下图。

这里写图片描述
这里写图片描述

命名空间

Tencentyun文件夹下的7个.class.php文件的namespace为正确的namespace

namespace Home\Controller\PhotoServer\Tencentyun;

实现

参考sdk文件夹下的samplev2.php编写测试Controller。代码如下 :
代码后面有注意事项。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2016/7/3
* Time: 11:44
*/
namespace Home\Controller\PhotoServer;

use Home\Controller\BaseController;

require('include.php');

use Home\Controller\PhotoServer\Tencentyun\ImageV2;
use Home\Controller\PhotoServer\Tencentyun\Auth;
use Home\Controller\PhotoServer\Tencentyun\ImageProcess;

class PhotoTestController extends BaseController
{
/**
* @return view
*/
public function index()
{
//智能鉴黄
$pornUrl = 'http://b.hiphotos.baidu.com/image/pic/item/8ad4b31c8701a18b1efd50a89a2f07082938fec7.jpg';
$pornRet = ImageProcess::pornDetect($pornUrl);
var_dump($pornRet);

// V2增强版空间 带有空间和自定义文件名的示例
// 上传图片
$bucket = 'zlktest'; // 自定义空间名称,在http://console.qcloud.com/image/bucket创建
$fileid = 'sample' . time(); // 自定义文件名
$uploadRet = ImageV2::upload('D:/123.jpg', $bucket, $fileid);
var_dump('upload', $uploadRet);

//分片上传
$uploadSliceRet = ImageV2::uploadSlice('D:/123.jpg');
var_dump('upload_slice', $uploadSliceRet);


if (0 === $uploadRet['code']) {
$fileid = $uploadRet['data']['fileid'];
$downloadUrl = $uploadRet['data']['downloadUrl'];

// 查询管理信息
$statRet = ImageV2::stat($bucket, $fileid);
var_dump('stat', $statRet);
// 复制
$copyRet = ImageV2::copy($bucket, $fileid);
var_dump('copy', $copyRet);

// 生成私密下载url
$expired = time() + 999;
$sign = Auth::getAppSignV2($bucket, $fileid, $expired);
$signedUrl = $downloadUrl . '?sign=' . $sign;
var_dump('downloadUrl:', $signedUrl);

//生成新的单次签名, 必须绑定资源fileid,复制和删除必须使用,其他不能使用
$fileid = $fileid . time() . rand(); // 自定义文件名
$expired = 0;
$sign = Auth::getAppSignV2($bucket, $fileid, $expired);
var_dump($sign);

//生成新的多次签名, 可以不绑定资源fileid
$fileid = '';
$expired = time() + 999;
$sign = Auth::getAppSignV2($bucket, $fileid, $expired);
var_dump($sign);

//$delRet = ImageV2::del($bucket, $fileid);
//var_dump($delRet);
}
}

}

注意事项

  1. 代码中使用了地址为:http://b.hiphotos.baidu.com/image/pic/item/8ad4b31c8701a18b1efd50a89a2f07082938fec7.jpg 的图片。图片内容如下 :
    这里写图片描述
    这里写图片描述
  2. ImageV2::upload('D:/123.jpg', $bucket, $fileid);这里的D:/123.jpg是用来模拟上传测试的。
  3. 测试示例会顺带使用万象优图的黄图鉴别功能。

访问

访问localhost/项目名/index.php/Home/PhotoServer/PhotoTest/index路径返回结果如下,返回字段的详细信息请参考万象优图的官方文档。

这里写图片描述
这里写图片描述

测试上传是否成功

我的D:/123.jpg的图片内容是步骤4中的Tencentyun的文件结构图。根据上面9中所得到的地址为:http://zlktest-10010932.image.myqcloud.com/786c2e74-4591-42ed-861e-8fe27b356c14.即可严重。