TP5.1上传图片至七牛云

TP5.1上传图片至七牛云


1. 百度七牛云官网,点击进入,点击免费注册

在这里插入图片描述

2. 填写信息注册完成后,选择侧边栏的对象存储服务

在这里插入图片描述

3. 点击空间管理,新建空间

在这里插入图片描述

4.填写名称、选择区域、选择访问控制

在这里插入图片描述
在这里插入图片描述

这个存储空间用来存放我们上传的图片,七牛云会免费提供给我们一个月的cdn测试域名,当然我们也可以将测试域名更改为我们自己的域名

5. 存储空间我们已经创建完成了,接下来我们要在tp5.1项目中引入七牛云的sdk,点击文档、开发者中心、官网sdk、php、选择文档我们会看到下图

在这里插入图片描述
七牛云提供给我们三种安装的方式,我常用composer进行安装

6. 打开控制台,进入项目目录,复制粘贴命令,回车
php composer.phar require qiniu/php-sdk

下载安装完毕后,会在vendor目录下生成七牛的sdk文件
在这里插入图片描述

7. 在前端页面添加form表单、更改action地址
<form method="post" action="/imageUpload" enctype="multipart/form-data">
  <input name="token" type="hidden" value="<upload_token>">
  <input name="file" type="file" />
  <input type="submit" value="上传"/>
</form>  

8. 后台控制器添加以下代码,use一下七牛的sdk
use Qiniu\Auth;
use Qiniu\Storage\UploadManager;
public function imageUpload()
    {
    	//上传的图片文件
        $file = request()->file('file');
        //获取上传文件名称
        $file_name = $_FILES['file']['name'];
        //获取文件大小
        $file_size = $_FILES['file']['size'];
        //获取图片后缀名称
        $suffix = explode('.', $file_name);
        //检查图片格式是否正确
        $type = ['JPG', 'PNG', 'GIF','jpg','png','gif'];
        if (!in_array($suffix[1], $type)) {
            return '格式错误! </br> 图片类型只支持PNG、JPG、GIF';
        }
        //检查图片大小
        $size = (($file_size / 1024) / 1024) * 1000;
        if ($size > 2048) {
            return '图片大小超过2M!';
        }
        
        //设置图片存储路径
        $dir = 'image';
        $image = "image/$file_name";
        if (file_exists($image)) {
            return '图片已存在';
        }
        $info = $file->move($dir, '');
        if (!$info) {
            return '上传到本地失败!';
        }
        
        $accessKey = ‘七牛个人中心的accesskey ’;
        $secretKey = ‘七牛个人中心的secretKey ’;

        //构建鉴权对象
        $auth= new Auth($accessKey,$secretKey);
        //在七牛的存储空间
		$bucket='在七牛创建的空间名称'
        $token = $auth->uploadToken($bucket);
        
        //获取当前项目路径
     	$real_path = getcwd();
     	//图片存储路径
    	$real_path .= '/image/' . "$file_name ";

    	// 上传到七牛后保存的文件名
    	$date = time();
   		$key = $date;

	    // 初始化 UploadManager 对象并进行文件的上传。
    	$uploadMgr = new UploadManager();
    	// 调用 UploadManager 的 putFile 方法进行文件的上传。
	    list($res, $err) = $uploadMgr->putFile($token, $key, $real_path);
	    
	    //删除项目存储的本地图片
   	 	$path = $info ->getRealPath();
   		if (file_exists($path)) {
        		unset($iconMsg);
        		unlink($path);  //删除文件
   		}

    	if ($err !== null) {
        	return array(
            'code' => 0,
            'data' => '图片上传七牛云失败'
        	);
    	} else {
        return array(
            'code' => 1,
            'data' =>  '存储空间的cdn域名地址' . $res['key'],
        	);
   	 }

秘钥在个人中心的秘钥管理模块
在这里插入图片描述

9. 至此图片上传七牛云的功能已完成,点击上传后,将获得可在浏览器中访问的网络图片地址

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值