tp5.1阿里云上传图片

需要下载php 的sdk包,注意路径问题

composer require aliyuncs/oss-sdk-php

前台页面

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
	</head>
	<body>
		<form action="oss.php" method="post" enctype="multipart/form-data">
			<!--用户名:<input type="text" name="uname"><br><br>-->
			请选择文件:<input type="file" name="filename"><br><br>
			<input type="submit" value="点击上传">
		</form>		
	</body>
</html>

后台控制器

 /**
     * 实例化阿里云OSS
     * @return object 实例化得到的对象
     * @return 此步作为共用对象,可提供给多个模块统一调用
     */
    function newOss(){
        //获取配置项,并赋值给对象$config
        $config=config('aliyun_oss');

        //实例化OSS
        $oss=new \OSS\OssClient($config['KeyId'],$config['KeySecret'],$config['Endpoint']);

        return $oss;

    }


    /**
     * 上传指定的本地文件内容
     *
     * @param OssClient $ossClient OSSClient实例
     * @param string $bucket 存储空间名称
     * @param string $object 上传的文件名称
     * @param string $Path 本地文件路径
     * @return null
     */

    function uploadFile($bucket,$object,$Path){

        //try 要执行的代码,如果代码执行过程中某一条语句发生异常,则程序直接跳转到CATCH块中,由$e收集错误信息和显示

        try{

            //没忘吧,new_oss()是我们上一步所写的自定义函数

            $ossClient =$this->newOss();

            //uploadFile的上传方法

            $res=    $ossClient->uploadFile($bucket, $object, $Path);
            return json($res);
        } catch(OssException $e) {

            //如果出错这里返回报错信息
            return $e->getMessage();

        }

    }
public function save(Request $request)
    {

        $file = request()->file('img');
        // 移动到框架应用根目录/uploads/ 目录下
        $info = $file->getInfo('tmp_name');
        $arr = [];
        if ($info) {
            $fileName =$file->getInfo()['name'];
            $re=$this->uploadFile('1803a', $fileName, $info);
            
            $re = (array)$re;//对象转换成数组

			//把所有value值取出并按照索引数组排列,取2是你上传的地址
            var_dump(array_values($re)[2]["info"]['url']);
           }

config目录app.php配置

 'aliyun_oss' => [
        'KeyId'      => 'asdhjkasdhfkjsda',  //您的Access Key ID
        'KeySecret'  => 'MKRz58BfuaXq6IK',  //您的Access Key Secret
        'Endpoint'   => 'oss-cn-beijing.aliyuncs.com',  //阿里云oss 外网地址endpoint
        'Bucket'     => 'jdfh',  //Bucket名称
    ],

自己封装oss上传类库

Alyunoss.php

<?php


namespace app\common;


use OSS\Core\OssException;

class Alyunoss
{
    /**
     * 实例化阿里云OSS
     * @return object 实例化得到的对象
     * @return 此步作为共用对象,可提供给多个模块统一调用
     */
    function newOss(){
        //获取配置项,并赋值给对象$config
        $config=config('aliyun_oss');

        //实例化OSS
        $oss=new \OSS\OssClient($config['KeyId'],$config['KeySecret'],$config['Endpoint']);

        return $oss;

    }


    /**
     * 上传指定的本地文件内容
     *
     * @param OssClient $ossClient OSSClient实例
     * @param string $bucket 存储空间名称
     * @param string $object 上传的文件名称
     * @param string $Path 本地文件路径
     * @return null
     */

    function uploadFile($bucket,$object,$Path){

        //try 要执行的代码,如果代码执行过程中某一条语句发生异常,则程序直接跳转到CATCH块中,由$e收集错误信息和显示

        try{

            //没忘吧,new_oss()是我们上一步所写的自定义函数

            $ossClient =$this->newOss();

            //uploadFile的上传方法

            $res=    $ossClient->uploadFile($bucket, $object, $Path);
            return json($res);
        } catch(OssException $e) {

            //如果出错这里返回报错信息
            return $e->getMessage();

        }

    }
}

文件上传后台接收代码

 //图片上传oss
        $file = request()->file('img');
        // 获取本地临时存放文件路径
        $info = $file->getInfo('tmp_name');

        if ($info){
            $filename=$file->getinfo()['name'];
            //实例化oss上传类
            $oss=new Alyunoss();
            $oss->uploadFile('weeks',$filename,$info);
            //自己拼接图片oss访问地址
            $imgurl='https://weeks.oss-cn-shanghai.aliyuncs.com/'.$filename;
        } else {

            // 上传失败获取错误信息
            echo $file->getError();
        }
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值