精华内容
下载资源
问答
  • laravel oss文件上传到阿里云

    千次阅读 2019-07-19 18:21:36
    需要自己注册阿里云账号并且开通oss服务,建立Bucket存储空间 ...构建 Service 文件需要自己手动建立 app/services/OSS.php 只需要修改下面的信息,变成自己的阿里云AccessKeyId AccessKe...

    需要自己注册阿里云账号并且开通oss服务,建立Bucket存储空间

     

    å¨è¿éæå¥å¾çæè¿°

    å¨è¿éæå¥å¾çæè¿°

    å¨è¿éæå¥å¾çæè¿°

    使用composer在项目根目录执行以下命令  composer require johnlui/aliyun-oss:~2.0

    构建 Service 文件 需要自己手动建立 app/services/OSS.php 

     只需要修改下面的信息,变成自己的阿里云AccessKeyId AccessKeySecret就可以,注意OSS.php 文件中 private $city = ‘青岛’; 所对应的城市,要根据自己OSS相对应的地区所选择,如何查看自己的OSS地区,请到阿里云OSS中查看,修改错误会导致无法连接到阿里云OSS服务器

    <?php
    namespace App\Services;
    use JohnLui\AliyunOSS;
    use Exception;
    use DateTime;
    class OSS {
      /* 城市名称:
       *  
       *  经典网络下可选:杭州、上海、青岛、北京、张家口、深圳、香港、硅谷、弗吉尼亚、新加坡、悉尼、日本、法兰克福、迪拜
       *  VPC 网络下可选:杭州、上海、青岛、北京、张家口、深圳、硅谷、弗吉尼亚、新加坡、悉尼、日本、法兰克福、迪拜
       */    
      private $city = '青岛';
      // 经典网络 or VPC
      private $networkType = '经典网络';
      
      private $AccessKeyId = '';
      private $AccessKeySecret = '';
      private $ossClient;
      /**
       * 私有初始化 API,非 API,不用关注
       * @param boolean 是否使用内网
       */
      public function __construct($isInternal = false)
      {
        if ($this->networkType == 'VPC' && !$isInternal) {
          throw new Exception("VPC 网络下不提供外网上传、下载等功能");
        }
        $this->ossClient = AliyunOSS::boot(
          $this->city,
          $this->networkType,
          $isInternal,
          $this->AccessKeyId,
          $this->AccessKeySecret
        );
      }
      /**
       * 使用外网上传文件
       * @param  string bucket名称
       * @param  string 上传之后的 OSS object 名称
       * @param  string 上传文件路径
       * @return boolean 上传是否成功
       */
      public static function publicUpload($bucketName, $ossKey, $filePath, $options = [])
      {
        $oss = new OSS();
        $oss->ossClient->setBucket($bucketName);
        return $oss->ossClient->uploadFile($ossKey, $filePath, $options);
      }
      /**
       * 使用阿里云内网上传文件
       * @param  string bucket名称
       * @param  string 上传之后的 OSS object 名称
       * @param  string 上传文件路径
       * @return boolean 上传是否成功
       */
      public static function privateUpload($bucketName, $ossKey, $filePath, $options = [])
      {
        $oss = new OSS(true);
        $oss->ossClient->setBucket($bucketName);
        return $oss->ossClient->uploadFile($ossKey, $filePath, $options);
      }
      /**
       * 使用外网直接上传变量内容
       * @param  string bucket名称
       * @param  string 上传之后的 OSS object 名称
       * @param  string 上传的变量
       * @return boolean 上传是否成功
       */
      public static function publicUploadContent($bucketName, $ossKey, $content, $options = [])
      {
        $oss = new OSS();
        $oss->ossClient->setBucket($bucketName);
        return $oss->ossClient->uploadContent($ossKey, $content, $options);
      }
      /**
       * 使用阿里云内网直接上传变量内容
       * @param  string bucket名称
       * @param  string 上传之后的 OSS object 名称
       * @param  string 上传的变量
       * @return boolean 上传是否成功
       */
      public static function privateUploadContent($bucketName, $ossKey, $content, $options = [])
      {
        $oss = new OSS(true);
        $oss->ossClient->setBucket($bucketName);
        return $oss->ossClient->uploadContent($ossKey, $content, $options);
      }
      /**
       * 使用外网删除文件
       * @param  string bucket名称
       * @param  string 目标 OSS object 名称
       * @return boolean 删除是否成功
       */
      public static function publicDeleteObject($bucketName, $ossKey)
      {
        $oss = new OSS();
        $oss->ossClient->setBucket($bucketName);
        return $oss->ossClient->deleteObject($bucketName, $ossKey);
      }
      /**
       * 使用阿里云内网删除文件
       * @param  string bucket名称
       * @param  string 目标 OSS object 名称
       * @return boolean 删除是否成功
       */
      public static function privateDeleteObject($bucketName, $ossKey)
      {
        $oss = new OSS(true);
        $oss->ossClient->setBucket($bucketName);
        return $oss->ossClient->deleteObject($bucketName, $ossKey);
      }
      /**
       * -------------------------------------------------
       *
       * 
       *  下面不再分公网内网出 API,也不注释了,大家自行体会吧。。。
       *
       * 
       * -------------------------------------------------
       */
      public function copyObject($sourceBuckt, $sourceKey, $destBucket, $destKey)
      {
        $oss = new OSS();
        return $oss->ossClient->copyObject($sourceBuckt, $sourceKey, $destBucket, $destKey);
      }
      public function moveObject($sourceBuckt, $sourceKey, $destBucket, $destKey)
      {
        $oss = new OSS();
        return $oss->ossClient->moveObject($sourceBuckt, $sourceKey, $destBucket, $destKey);
      }
      // 获取公开文件的 URL
      public static function getPublicObjectURL($bucketName, $ossKey)
      {
        $oss = new OSS();
        $oss->ossClient->setBucket($bucketName);
        return $oss->ossClient->getPublicUrl($ossKey);
      }
      // 获取私有文件的URL,并设定过期时间,如 \DateTime('+1 day')
      public static function getPrivateObjectURLWithExpireTime($bucketName, $ossKey, DateTime $expire_time)
      {
        $oss = new OSS();
        $oss->ossClient->setBucket($bucketName);
        return $oss->ossClient->getUrl($ossKey, $expire_time);
      }
      public static function createBucket($bucketName)
      {
        $oss = new OSS();
        return $oss->ossClient->createBucket($bucketName);
      }
      public static function getAllObjectKey($bucketName)
      {
        $oss = new OSS();
        return $oss->ossClient->getAllObjectKey($bucketName);
      }
      public static function getObjectMeta($bucketName, $ossKey)
      {
        $oss = new OSS();
        return $oss->ossClient->getObjectMeta($bucketName, $ossKey);
      }
    }

     

    放入自动加载
    
    在 composer.json 中 autoload -> classmap 处增加配置:
    
    “autoload”: {
    “classmap”: [
    “app/services”
    ]
    }
    
    然后运行 composer dump-autoload

    获取文件路径

    创建控制器类 Util/UploadController 控制器用于接收前台上传的图片,上传到阿里云OSS,并且拿到返回路径。Bucket名称名称换成自己的

    控制器的使用
    namespace App\Http\Controllers\Util;
    
    use App\Http\Controllers\Controller;
    use App\Services\OSS;
    use Illuminate\Http\Request;
    
    class UploadController extends Controller
    {
        public function upload(Request $request)
        {
        //获取上传的文件
        $file = $request->file('file');
        //获取上传图片的临时地址
        $tmppath = $file->getRealPath();
        //生成文件名
        $fileName = str_random(5) . $file->getFilename() . time() .date('ymd') . '.' . $file->getClientOriginalExtension();
        //拼接上传的文件夹路径(按照日期格式1810/17/xxxx.jpg)
        $pathName = date('Y-m/d').'/'.$fileName;
        //上传图片到阿里云OSS
        OSS::publicUpload('Bucket名称', $pathName, $tmppath, ['ContentType' => $file->getClientMimeType()]);
        //获取上传图片的Url链接
        $Url = OSS::getPublicObjectURL('Bucket名称', $pathName);
        // 返回状态给前端,Laravel框架会将数组转成JSON格式
        return ['code' => 0, 'msg' => '上传成功', 'data' => ['src' => $Url]];
    }
    }
    //模型使用,控制器调取使用即可
    <?php
    
    namespace App\Model;
    use App\Services\OSS;
    use Illuminate\Database\Eloquent\Model;
    use Illuminate\Http\Request;
    
    class design extends Model
    {
        protected $table="";
        public $timestamps = false;
    
        public static function uploadOss($file)
        {
            if (!$file) {
                exit("请上传图片");
            }
            // 文件是否上传成功
            if ($file->isValid()) {
                // 获取文件相关信息
                $originalName = $file->getClientOriginalName(); // 文件原名
                $ext = $file->getClientOriginalExtension();     // 扩展名
                $realPath = $file->getRealPath();   //临时文件的绝对路径
                $type = $file->getClientMimeType();     // image/jpeg
                $content = date('Y-m-d H:i:s') . '-' . uniqid() . '.' . $ext;
                //上传图片到阿里云OSS
                OSS::publicUpload('$Bucket名字', $content,  $realPath, ['ContentType' => $file->getClientMimeType()]);
                //获取上传图片的Url链接
                $Url = OSS::getPublicObjectURL('$Bucket名字',  $content);
                // 返回结果
                if($Url){
                    return $Url;
                }else{
                    return exit('文件上传失败');
                }
            }
        }
    
    }
    

     

     

     

     

    展开全文
  • 1,在项目的根目录composer.json文件中加入 "aliyuncs/oss-sdk-php": "*";...5,使用oss 上传图片功能实现后发现图片不能预览,虽说页面展示没问题,直接访问图片路径就自动下载了感觉很不舒服 查看oss文档发现 需要把

    1,在项目的根目录composer.json文件中加入

    "aliyuncs/oss-sdk-php": "*"

    2,在项目的根目录中运行以下命令

    composer update
    

    3,执行成功之后会生成 \vendor\johnlui\aliyun-oss 的依赖包;
    4,打开项目根目录的配置文件env 配置oss配置参数;如下图(具体参数到自己oss账户中获取)
    在这里插入图片描述
    5,使用oss 上传图片功能实现后发现图片不能预览,虽说页面展示没问题,直接访问图片路径就自动下载了感觉很不舒服
    查看oss文档发现 需要把 OSS_CONTENT_TYPE => ‘image/jpg’;才能在线预览

    6,上传-删除的功能代码如下

    <?php
    declare(strict_types=1);
    
    namespace Common\Service;
    
    use OSS\OssClient;
    use OSS\Core\OssException;
    use OSS\Core\OssUtil;
    
    
    class UploadFileService
    {
        /**
         * 获取OSS配置数据
         * @return array
         */
        private function ossConfig()
        {
            return [
                'accessId' => env('OSS_ACCESS_ID', ''),
                'accessKey' => env('OSS_ACCESS_KEY', ''),
                'endpoint' => env('OSS_ENDPOINT', 'https://oss-cn-hangzhou.aliyuncs.com'),
                'bucket' => env('OSS_BUCKET', 'wmm-cxtt')
            ];
        }
    
        /**
         * 上传文件到阿里云
         * @param $file
         * @param array $type
         * @return array
         */
        public function ossUpload($file, $type)
        {
            try {
                if ($file["file"]["error"] == 0) {
                    if ($type == 'img') {
                        return self::uploadImg($file);
                    } else {
                        return self::uploadFile($file);
                    }
                }
    
                return hello_error('文件不能为空!');
    
            } catch (\Exception $exception) {
                return hello_error('失败!', $exception->getMessage());
            }
    
        }
    
        /**
         * 上传图片到阿里云
         * @param $file
         * @return array
         */
        public function uploadImg($file)
        {
            try {
                if ($file['size'] > 10485760) {
                    return hello_error('上传的图片不能大于10MB');
                }
                $pixel = getimagesize($file['tmp_name']);//获取图片大小
                $suffix = explode('.', $file['name']);
                $pathName = 'admin/imgs/' . date('Y-m') . '/' . uniqid() . '.' . $suffix[1]; //生成文件名
                $filePath = $file['tmp_name']; //临时文件路径
    
                $config = self::ossConfig();
                $ossClient = new OssClient($config['accessId'], $config['accessKey'], $config['endpoint']);
                $options = array(OssClient::OSS_CONTENT_TYPE => 'image/jpg');
                $result = $ossClient->uploadFile($config['bucket'], $pathName, $filePath, $options);
    
                if ($result['info']) {
                    $resData = [
                        'url' => $result['oss-request-url'],
                        'src' => $pathName . '?w=' . $pixel[0] . '&h=' . $pixel[1]
                    ];
                    return hello_success('上传成功', $resData);
                }
    
                return hello_error('上传失败!');
    
            } catch (\Exception $exception) {
                return hello_error('失败!', $exception->getMessage());
            }
        }
    
        /**
         * 富文本编辑器上传文件到阿里云
         * @param $file
         * @param $fileName
         * @return array
         */
        public function uedUploadFile($file, $fileName)
        {
            try {
                if ($file['size'] > 10485760) {
                    return hello_error('上传的图片不能大于10MB');
                }
    
                $pathName = 'men_hu/ueditor/' . date('Y-m') . '/' . $fileName; //生成文件名
                $filePath = $file['tmp_name']; //临时文件路基
    
                $config = self::ossConfig();
                $ossClient = new OssClient($config['accessId'], $config['accessKey'], $config['endpoint']);
                $options = array(OssClient::OSS_CONTENT_TYPE => 'image/jpg');
                $result = $ossClient->uploadFile($config['bucket'], $pathName, $filePath, $options);
    
                if ($result['info']) {
                    $resData = ['src' => $pathName, 'url' => $result['info']['url']];
                    return hello_success('上传成功', $resData);
                }
    
                return hello_error('上传失败!');
    
            } catch (\Exception $exception) {
                return hello_error('失败!', $exception->getMessage());
            }
        }
    
        /**
         * 上传文件到阿里云
         * @param $file
         * @return array
         */
        public function uploadFile($file)
        {
            try {
                if ($file['size'] > 31457280) {
                    return hello_error('上传的文件不能大于30MB');
                }
    
                $suffix = explode('.', $file['name']);
                $pathName = 'admin/files/' . date('Y-m') . '/' . uniqid() . '.' . $suffix[1]; //生成文件名
                $filePath = $file['tmp_name']; //临时文件路基
    
                $config = self::ossConfig();
                $ossClient = new OssClient($config['accessId'], $config['accessKey'], $config['endpoint']);
                $result = $ossClient->uploadFile($config['bucket'], $pathName, $filePath);
    
                if ($result['info']) {
                    $resData = ['src' => $pathName, 'url' => $result['info']['url'], 'size' => $file['size']];
                    return hello_success('上传成功', $resData);
                }
    
                return hello_error('上传失败!');
    
            } catch (\Exception $exception) {
                return hello_error('失败!', $exception->getMessage());
            }
        }
    
        /**
         * 文件分片上传
         * @param $file
         * @return array
         */
        public function uploadFileByPiece($file)
        {
            try {
                $suffix = explode('.', $file['name']);
                $pathName = 'men_hu/files/' . date('Y-m') . '/' . uniqid() . '.' . $suffix[1]; //生成文件名
                $uploadFile = $file['tmp_name']; //临时文件路基
    
                //步骤1:初始化一个分片上传事件,获取uploadId。
                $config = self::ossConfig();
                $ossClient = new OssClient($config['accessId'], $config['accessKey'], $config['endpoint']);
                $uploadId = $ossClient->initiateMultipartUpload($config['bucket'], $pathName);
    
                //步骤2:上传分片。
                $partSize = 10 * 1024 * 1024;//一片10M
                $uploadFileSize = filesize($uploadFile);
                $pieces = $ossClient->generateMultiuploadParts($uploadFileSize, $partSize);
                $responseUploadPart = array();
                $uploadPosition = 0;
                $isCheckMd5 = true;
                foreach ($pieces as $i => $piece) {
                    $fromPos = $uploadPosition + (integer)$piece[$ossClient::OSS_SEEK_TO];
                    $toPos = (integer)$piece[$ossClient::OSS_LENGTH] + $fromPos - 1;
                    $upOptions = array(
                        // 上传文件。
                        $ossClient::OSS_FILE_UPLOAD => $uploadFile,
                        // 设置分片号。
                        $ossClient::OSS_PART_NUM => ($i + 1),
                        // 指定分片上传起始位置。
                        $ossClient::OSS_SEEK_TO => $fromPos,
                        // 指定文件长度。
                        $ossClient::OSS_LENGTH => $toPos - $fromPos + 1,
                        // 是否开启MD5校验,true为开启。
                        $ossClient::OSS_CHECK_MD5 => $isCheckMd5,
                    );
                    // 开启MD5校验。
                    if ($isCheckMd5) {
                        $contentMd5 = OssUtil::getMd5SumForFile($uploadFile, $fromPos, $toPos);
                        $upOptions[$ossClient::OSS_CONTENT_MD5] = $contentMd5;
                    }
                    try {
                        // 上传分片。
                        $responseUploadPart[] = $ossClient->uploadPart($config['bucket'], $pathName, $uploadId, $upOptions);
                    } catch (OssException $e) {
                        printf(__FUNCTION__ . ": initiateMultipartUpload, uploadPart - part#{$i} FAILED\n");
                        printf($e->getMessage() . "\n");
                        return;
                    }
                    printf(__FUNCTION__ . ": initiateMultipartUpload, uploadPart - part#{$i} OK\n");
                }
                // $uploadParts是由每个分片的ETag和分片号(PartNumber)组成的数组。
                $uploadParts = array();
                foreach ($responseUploadPart as $i => $eTag) {
                    $uploadParts[] = array(
                        'PartNumber' => ($i + 1),
                        'ETag' => $eTag,
                    );
                }
    
                //步骤3:完成上传。
                // 执行completeMultipartUpload操作时,需要提供所有有效的$uploadParts。OSS收到提交的$uploadParts后,会逐一验证每个分片的有效性。当所有的数据分片验证通过后,OSS将把这些分片组合成一个完整的文件。
                $result = $ossClient->completeMultipartUpload($config['bucket'], $pathName, $uploadId, $uploadParts);
    
                if ($result['info']) {
                    $url = explode('?', $result['info']['url']);
                    $resData = ['src' => $pathName, 'url' => $url[0]];
                    return hello_success('上传成功', $resData);
                }
    
                return hello_error('上传失败!');
            } catch (\Exception $exception) {
                return hello_error('失败!', $exception->getMessage());
            }
    
        }
    
        /**
         * 删除OSS上指定文件
         * @param string $fileName
         * @return array
         */
        function ossDelete($fileName = '')
        {
            try {
                if (empty($fileName)) {
                    return hello_error('需要删除的文件名不能为空!');
                }
    
                $config = self::ossConfig();
                $ossClient = new OssClient($config['accessId'], $config['accessKey'], $config['endpoint']);
    
                if ($ossClient->doesObjectExist($config['bucket'], $fileName)) {
                    $ossClient->deleteObject($config['bucket'], $fileName);
                    return hello_success('删除成功!');
                } else {
                    return hello_error('图片不存在!');
                }
            } catch (\Exception $exception) {
                return hello_error($exception->getMessage());
            }
        }
    }
    

    7,更多功能请查看oss官方文档
    https://help.aliyun.com/document_detail/88473.html?spm=a2c4g.11186623.6.1091.347d69cbQhXfj4

    8、 富文本编辑器上传文件到OSS
    https://blog.csdn.net/qq_41688060/article/details/108442965

    展开全文
  • laravel 阿里云oss文件上传

    千次阅读 2019-03-03 12:16:28
    这里使用到的前端上传组件layui 上传aliyun组件使用的是johnlui/AliyunOSS 安装 composer require johnlui/aliyun-oss:~2.0 构建 Service 文件 需要自己手动建立 app/services/OSS.php 内容可参考: ...

    需要自己注册阿里云账号并且开通oss服务,建立Bucket存储空间
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    这里使用到的前端上传组件layui 上传aliyun组件使用的是johnlui/AliyunOSS

    安装

    composer require johnlui/aliyun-oss:~2.0
    构建 Service 文件

    需要自己手动建立 app/services/OSS.php 内容可参考: https://github.com/johnlui/AliyunOSS/blob/master/example/OSS.php
    只需要修改下面的信息,变成自己的阿里云AccessKeyId AccessKeySecret就可以了

    private $city = '北京';
    private $networkType = '经典网络';
    //此处修改成成阿里云的AccessKeyId  AccessKeySecret
    private $AccessKeyId = '';
    private $AccessKeySecret = '';
    private $ossClient;
    

    放入自动加载

    在 composer.json 中 autoload -> classmap 处增加配置:

    “autoload”: {
    “classmap”: [
    “app/services”
    ]
    }
    然后运行 composer dump-autoload。

    获取文件路径

    创建控制器类 Util/UploadController 控制器用于接收前台上传的图片,上传到阿里云OSS,并且拿到返回路径。Bucket名称名称换成自己的

    namespace App\Http\Controllers\Util;

    use App\Http\Controllers\Controller;
    use App\Services\OSS;
    use Illuminate\Http\Request;

    class UploadController extends Controller
    {

    public function upload(Request $request)
    {
        //获取上传的文件
        $file = $request->file('file');
        //获取上传图片的临时地址
        $tmppath = $file->getRealPath();
        //生成文件名
        $fileName = str_random(5) . $file->getFilename() . time() .date('ymd') . '.' . $file->getClientOriginalExtension();
        //拼接上传的文件夹路径(按照日期格式1810/17/xxxx.jpg)
        $pathName = date('Y-m/d').'/'.$fileName;
        //上传图片到阿里云OSS
        OSS::publicUpload('Bucket名称', $pathName, $tmppath, ['ContentType' => $file->getClientMimeType()]);
        //获取上传图片的Url链接
        $Url = OSS::getPublicObjectURL('Bucket名称', $pathName);
        // 返回状态给前端,Laravel框架会将数组转成JSON格式
        return ['code' => 0, 'msg' => '上传成功', 'data' => ['src' => $Url]];
    }
    

    }
    前端Layui代码

    我们使用的Laravel框架请求需要携带令牌所以我们需要在header和js上携带令牌,获取到后端return的返回接口可以在res接收返回的阿里云地址,创建form表单将res返回的地址使用jquery改变input的值,并且触发提交

    注意

    1.OSS.php 文件中 private $city = ‘青岛’; 所对应的城市,要根据自己OSS相对应的地区所选择,如何查看自己的OSS地区,请到阿里云OSS中查看,修改错误会导致无法连接到阿里云OSS服务器

    展开全文
  • 本地上传 $file = $request->file('file', 0);//文件名称 /** 判断文件格式以及各种错误 **/ //获取文件的扩展名 $ext = $file->getClientOriginalExtension(); //获取文件的绝对路径 $path = $file->...
  • laravel_ 阿里云_oss_文件上传

    千次阅读 2019-03-12 21:01:11
    这里使用到的前端上传组件layui 上传aliyun组件使用的是johnlui/AliyunOSS 安装 composer require johnlui/aliyun-oss:~2.0 构建 Service 文件 需要自己手动建立 app/services/OSS.php 内容可参考: ...

    需要自己注册阿里云账号并且开通oss服务,建立Bucket存储空间
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    这里使用到的前端上传组件layui 上传aliyun组件使用的是johnlui/AliyunOSS

    安装

    composer require johnlui/aliyun-oss:~2.0
    构建 Service 文件

    需要自己手动建立 app/services/OSS.php 内容可参考: https://github.com/johnlui/AliyunOSS/blob/master/example/OSS.php
    只需要修改下面的信息,变成自己的阿里云AccessKeyId AccessKeySecret就可以了
    private $city = ‘北京’;
    private $networkType = ‘经典网络’;
    //此处修改成成阿里云的AccessKeyId AccessKeySecret
    private $AccessKeyId = ‘’;
    private $AccessKeySecret = ‘’;
    private $ossClient;
    放入自动加载

    在 composer.json 中 autoload -> classmap 处增加配置:

    “autoload”: {
    “classmap”: [
    “app/services”
    ]
    }
    然后运行 composer dump-autoload。

    获取文件路径

    创建控制器类 Util/UploadController 控制器用于接收前台上传的图片,上传到阿里云OSS,并且拿到返回路径。Bucket名称名称换成自己的

    namespace App\Http\Controllers\Util;

    use App\Http\Controllers\Controller;
    use App\Services\OSS;
    use Illuminate\Http\Request;

    class UploadController extends Controller
    {
    public function upload(Request $request)
    {
    //获取上传的文件
    $file = $request->file(‘file’);
    //获取上传图片的临时地址
    $tmppath = $file->getRealPath();
    //生成文件名
    $fileName = str_random(5) . $file->getFilename() . time() .date(‘ymd’) . ‘.’ . $file->getClientOriginalExtension();
    //拼接上传的文件夹路径(按照日期格式1810/17/xxxx.jpg)
    p a t h N a m e = d a t e ( ′ Y − m / d ′ ) . ′ / ′ . pathName = date(&#x27;Y-m/d&#x27;).&#x27;/&#x27;. pathName=date(Ym/d)./.fileName;
    //上传图片到阿里云OSS
    OSS::publicUpload(‘Bucket名称’, $pathName, $tmppath, [‘ContentType’ => $file->getClientMimeType()]);
    //获取上传图片的Url链接
    $Url = OSS::getPublicObjectURL(‘Bucket名称’, $pathName);
    // 返回状态给前端,Laravel框架会将数组转成JSON格式
    return [‘code’ => 0, ‘msg’ => ‘上传成功’, ‘data’ => [‘src’ => $Url]];
    }
    }
    前端Layui代码

    我们使用的Laravel框架请求需要携带令牌所以我们需要在header和js上携带令牌,获取到后端return的返回接口可以在res接收返回的阿里云地址,创建form表单将res返回的地址使用jquery改变input的值,并且触发提交

    注意

    1.OSS.php 文件中 private $city = ‘青岛’; 所对应的城市,要根据自己OSS相对应的地区所选择,如何查看自己的OSS地区,请到阿里云OSS中查看,修改错误会导致无法连接到阿里云OSS服务器

    展开全文
  • composer require panwenbin/laravel-aliyunoss 部署: // config/filesystems.php 'default' => env('FILESYSTEM_DRIVER', 'oss'), // 缺省驱动改为oss ... 'disks' => [ ... // 增...
  • laravel-admin 文件上传oss

    千次阅读 2018-09-18 10:00:43
    1,在composer.json 文件中的 require 添加 "jacobcyl/ali-oss-storage": "^2.1" 2,在config/app.php的providers下添加 Jacobcyl\AliOSS\AliOssServiceProvider::class, 3,在config...
  • 1、安装插件 2020年8月6日14:36:13 "require": { ... "barryvdh/laravel-debugbar": "^3.2", "fideloper/proxy": "^4.0", ..."freyo/flysystem-qcloud-cos-v5": "^2.0", ..."fruitcake/laravel-cors":..."johnlui/aliyun-oss
  • laravel使用阿里云OSS上传图片

    千次阅读 2020-08-04 09:06:41
    阿里官网文档:https://help.aliyun.com/document_detail/32101.html?spm=a2c4g.11186623.6.1093.294d2589CrVykP 需要自己注册阿里云账号并且开通oss服务,建立Bucket...二、构建 Service 文件需要自己手动建立 app...
  • laravel框架中集成intervention-image处理图像并上传OSS云存储前言一、Intervention Image是什么?二、使用步骤1.定义路由2.引入库3.输出结果总结 前言 前言:作为一名全栈开发,和图像处理打交道是习以为常,主要是...
  • 1.了解文件磁盘配置: 'public' => [ 'driver' => 'local', 'root' => storage_path('app/public'), 'url' => env('APP_URL').'/storage', 'visibility' => 'public', ], 在filesystems.php文件中创建了一个名...
  • PHP通过Laravel巧妙实现超大文件上传

    千次阅读 2019-04-11 16:09:14
    在PHP开发中有的时候会遇到需要上传比较大的文件到服务器,在这相信很多小伙伴们都会抓头,不知道怎么解决,在这里小编将讲解怎么通过Laravel来实现这个功能。 正文 我们知道,在以前,文件上传采用的是直接传整个...
  • Laravel的Aliyun-oss-storage 扩展的了一些优秀的代码,综合各方面,同时做了更多优化,将会添加更多完善的接口和插件,打造Laravel最好的OSS Storage扩展 运行环境 PHP 7.0以上 cURL扩展名 Laravel 5.5+ 安装方法 ...
  • 因为项目需求,需要把图片上传至阿里云 OSS,我的 Api 接口和后台项目是分开的,都使用的 laravel 框架开发,Api 接入 OSS 这里就不做讨论了,这里主要说一下 laravel-admin 上传阿里 OSS 的问题。 网上的一些教程也...
  • oss 上传图片 1:composer require jacobcyl/ali-oss-storage:^2.1 2:Then in your config/app.php add this line to providers array: Jacobcyl\AliOSS\AliOssServiceProvider::class, 3:Add the following...
  • <p>I have a laravel upload for file (along with other data that is passed to the database) Everything works. But I just can't figure out how to save the path of the file that is saved. <p>Here is my ...
  • 使用 laravel-admin 多图/文件上传 拼接路径 // 模型中添加, setImgAttribute中间的Img即为字段名 public function setImgAttribute($value) { // 获取数组最后一个元素 $value[count($value)-1] = '...
  • Laravel 上传文件大小改为200M

    千次阅读 2019-04-24 11:38:47
    今天处理了个小问题,要把上传文件大小支持到200M,但是遇到一点坑 解决方案——改3方面: 1.nginx的上传大小,最大允许请求时长 2.php.ini的上传、下载大小 3.前端页面请求时长设置 步骤: 1.设置nginx参数:...
  • 1.安装扩展包jacobcyl/ali-oss-storage": "^2.1 composer require jacobcyl/ali-oss-storage:^2.1 2.然后在 config/app.php 文件中注册 Jacobcyl\AliOSS\AliOssServiceProvider : 'providers' => [ // Other ...
  • 传入图片链接地址,即可下载到第二个参数对应的目录下面 if(copy(trim($img_url), base_path()....使用场景,我要把一张表的所有logo图片存到oss上 然后再把表中的路径改成自己的阿里云oss的url 代码: $itemCa...
  • public function uploadAvatar($params){ $params['uid'] = '123456'; $file = $params['file']; $uid = abs(intval($params['uid']));//1234567 $uid = sprintf("%09d", $uid); $dir1 = subst...
  • Laravel-Admin 上传图片/文件OSS(阿里云) 在Laravel-Admin中上传图片或者文件OSS 需要四步: 使用composer安装jacobcyl/ali-oss-storage包 在config/app.php的providers内注册Jacobcyl\AliOSS\...
  • Laravel 使用阿里OSS+阿里媒体处理-阿里OSS官方后台配置阿里OSS官方后台创建存储空间第一步:准备工作以上就是Laravel 5.7 +php 使用阿里官方上传SDK和conposer下载的阿里媒体处理拓展的详细使用方法。 阿里OSS官方...
  • 本地上传 $file = $request-&gt;file('file', 0);//文件名称 /** 判断文件格式以及各种错误 **/ //获取文件的扩展名 $ext = $file-&gt;getClientOriginalExtension(); //获取文件的绝对路径 ...
  • laravel-admin实现图片上传osslaravel-admin实现图片上传oss安装发布AliOSS-storage添加配置 laravel-admin实现图片上传oss 安装发布AliOSS-storage 下载 composer require jacobcyl/ali-oss-storage:^2.1 在...
  • laravel 删除阿里云oss图片

    千次阅读 2018-08-23 14:10:46
    https://github.com/aliyun/aliyun-oss-php-sdk?spm=a2c4g.11186623.2.5.2bbfc839lk5fQn 示例地址 https://help.aliyun.com/document_detail/32105.html?spm=a2c4g.11186623.6.751.2bbfc839lk5fQn...
  • 一、Request上传文件 在表单中添加enctype="multipart/form-data"属性 <form class="" action="" method="post" enctype="multipart/form-data"> $msg = new Msg;//实例化Msg类 $msg->title = $_POST['...
  • laravel5.7用阿里云OSS上传照片(批量)加 显示,删除 首先要composer一下 composer require aliyuncs/oss-sdk-php 然后呢你.env文件会有几个常量如果没有就加上 ALI_OSS_ACCESS_KEY_ID=**** AccessKey ID ALI_OSS...

空空如也

空空如也

1 2 3 4 5 ... 17
收藏数 332
精华内容 132
关键字:

laravel的oss上传文件