Aliyunoss.php 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: EDZ
  5. * Date: 2020/4/24
  6. * Time: 10:48
  7. */
  8. namespace app\common\controller;
  9. use OSS\Core\OssException;
  10. use OSS\OssClient;
  11. use think\Config;
  12. use think\Controller;
  13. use think\Image;
  14. use think\Request;
  15. class Aliyunoss
  16. {
  17. public function config()
  18. {
  19. $config = [ 'KeyId' => 'LTAIRkRNTUDJKj4Q', //Access Key ID
  20. 'KeySecret' => 'wwzTpuOeQPIpPgSpEG6n5MskPDs4CX', //Access Key Secret
  21. 'Endpoint' => 'oss-cn-huhehaote.aliyuncs.com', //阿里云oss 外网地址endpoint
  22. 'Bucket' => 'quyum', //Bucket名称
  23. // 'hostname' => 'quyum.oss-cn-huhehaote.aliyuncs.com', //Bucket 域名
  24. ];
  25. // $config = [ 'KeyId' => 'LTAI4GL7qTQwwU87nMsmAKmU', //Access Key ID
  26. // 'KeySecret' => '9ma10M1M3AgKjMSrYiMf5DgKr4jvWr', //Access Key Secret
  27. // 'Endpoint' => 'oss-cn-beijing.aliyuncs.com', //阿里云oss 外网地址endpoint
  28. // 'Bucket' => 'jiangnanmeiren', //Bucket名称
  29. // ];
  30. return $config;
  31. }
  32. public function uploadFile($file)
  33. {
  34. // $resResult = Image::open($file);
  35. $resResult=$file;
  36. // dump($file);die();
  37. // 尝试执行
  38. try {
  39. $config = $this->config(); //获取Oss的配置
  40. //实例化对象 将配置传入
  41. $ossClient = new OssClient($config['KeyId'], $config['KeySecret'], $config['Endpoint']);
  42. //这里是有sha1加密 生成文件名 之后连接上后缀
  43. // $fileName = sha1(date('YmdHis', time()) . uniqid()) . '.' . $resResult->type();
  44. $fileName ="guanwang/". sha1(date('YmdHis', time()) . uniqid()) . '.' . "png";
  45. //执行阿里云上传
  46. // $result = $ossClient->uploadFile($config['Bucket'], $fileName, $file->getInfo()['tmp_name']);
  47. $result = $ossClient->uploadFile($config['Bucket'], $fileName, $file['tmp_name']);
  48. } catch (OssException $e) {
  49. return $e->getMessage();
  50. }
  51. // dump($result);die();
  52. //将结果输出
  53. return $result['info']['url'];
  54. }
  55. //视频
  56. public function uploadVideo($file)
  57. {
  58. //上传视频到阿里云OSS
  59. $name = $file['name'];
  60. $format = strrchr($name, '.');
  61. $fileName = uniqid() . $format;
  62. //获取配置
  63. $config = $this->config(); //获取Oss的配置
  64. $ossClient = new OssClient($config['KeyId'], $config['KeySecret'], $config['Endpoint']);
  65. $uploadToAliyunOss = $ossClient->uploadFile($config['Bucket'], $fileName, $file['tmp_name']);
  66. if ($uploadToAliyunOss) {
  67. // 上传成功返回路径
  68. return $uploadToAliyunOss['info']['url'];
  69. } else {
  70. // 上传失败,打印错误信息
  71. halt($uploadToAliyunOss);
  72. }
  73. }
  74. }