gpt4 book ai didi

ThinkPHP5+UEditor图片上传到阿里云对象存储OSS功能示例

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 32 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章ThinkPHP5+UEditor图片上传到阿里云对象存储OSS功能示例由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

本文实例讲述了ThinkPHP5+UEditor图片上传到阿里云对象存储OSS。分享给大家供大家参考,具体如下:

ThinkPHP5使用富文本UEditor,将富文本编辑框内上传在本地的图片,修改到阿里云对象存储OSS 。

ThinkPHP5加载UEditor ···· 略 。

UEditor下载:https://ueditor.baidu.com/website/download.html#ueditor 。

阿里云对象存储SDK下载:https://github.com/aliyun/aliyun-oss-php-sdk 。

1、配置项 。

ueditor目录:\public\static\admin\lib\ueditor\1.4.3 OSS配置文件目录:\application\config\oos.php OSS SDK目录:\extend\oos 。

2、代码 。

1、OSS配置文件 。

?
1
2
3
4
5
6
7
8
<?php
return [
   'endpoint' => 'xxxx' ,
   'accessKeyId' => 'xxxxxxxxxxx' ,
   'accessKeySecret' => 'xxxxxxxxxxxxxxxxxxxxxxxxxx' ,
   'bucket' => 'xxxxx' ,
   'uploadurl' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' , //个人配置用,上传图片访问头部完整链接
];

2、在UEditor下写入Oos.class.php控制器 。

*注:本人用的是相对路径,请自行对照自己的目录结构替换掉文件引入地址 。

?
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
<?php
require_once realpath (dirname( __FILE__ ) . '/../../../../../../../' ) . '/extend/oos/autoload.php' ;
use OSS\OssClient;
use OSS\Core\OssException;
class Oos
{
   protected $oos = null;
   protected $bucket = null;
   //获取OOS客户端
   protected function getOssClient(){
     if ( $this ->oos === null){
       $config = require realpath (dirname( __FILE__ ) . '/../../../../../../../' ) . '/application/config/oos.php' ;
       $this ->bucket = $config [ 'bucket' ];
       try {
         $this ->oos = new OssClient( $config [ 'accessKeyId' ], $config [ 'accessKeySecret' ], $config [ 'endpoint' ], false);
       } catch (OssException $e ) {
         printf( __FUNCTION__ . "creating OssClient instance: FAILED\n" );
         printf( $e ->getMessage() . "\n" );
         return null;
       }
     }
     return $this ->oos;
   }
   //上传
   public function upload( $file , $save ){
     $config = require realpath (dirname( __FILE__ ) . '/../../../../../../../' ) . '/application/config/oos.php' ;
     $save = 'upload/' . $save ;
     $ossClient = $this ->getOssClient();
     if ( is_null ( $ossClient )) exit ( '链接存储失败' );
     $result = $ossClient ->uploadFile( $this ->bucket, $save , $file );
     return ! empty ( $result [ 'x-oss-request-id' ]);
   }
}

3、修改UEditor 上传图片的PHP文件,\public\static\admin\lib\ueditor\1.4.3\php\action_crawler.php 。

?
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
<?php
/**
  * 抓取远程图片
  * User: Jinqn
  * Date: 14-04-14
  * Time: 下午19:18
  */
set_time_limit(0);
include ( "Uploader.class.php" );
include ( "Oos.class.php" );
// 引入oss对象
$oos_config = require realpath (dirname( __FILE__ ) . '/../../../../../../../' ) . '/application/config/oos.php' ;
$oos = new Oos();
/* 上传配置 */
$config = array (
   "pathFormat" => $CONFIG [ 'catcherPathFormat' ],
   "maxSize" => $CONFIG [ 'catcherMaxSize' ],
   "allowFiles" => $CONFIG [ 'catcherAllowFiles' ],
   "oriName" => "remote.png"
);
$fieldName = $CONFIG [ 'catcherFieldName' ];
/* 抓取远程图片 */
$list = array ();
if (isset( $_POST [ $fieldName ])) {
   $source = $_POST [ $fieldName ];
} else {
   $source = $_GET [ $fieldName ];
}
foreach ( $source as $imgUrl ) {
   $item = new Uploader( $imgUrl , $config , "remote" );
   $info = $item ->getFileInfo();
   $year = date ( 'Ymd' ,time()); //图片路径 (年/月) 自己设置
   $img_name = time().rand(1,1000). $info [ 'type' ];
   $bos_url = "ueditor_upload/xinjieshi/image/$year/$img_name" ; //用作保存的图片路径和名字
   $oos ->upload( $_SERVER [ 'DOCUMENT_ROOT' ]. '/' . $info [ 'url' ], $bos_url );
   array_push ( $list , array (
     "state" => $info [ "state" ],
     "url" => $oos_config [ 'uploadurl' ]. $bos_url ,
     "size" => $info [ "size" ],
     "title" => htmlspecialchars( $info [ "title" ]),
     "original" => htmlspecialchars( $info [ "original" ]),
     "source" => htmlspecialchars( $imgUrl )
   ));
}
/* 返回抓取数据 */
return json_encode( array (
   'state' => count ( $list ) ? 'SUCCESS' : 'ERROR' ,
   'list' => $list
));

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助.

原文链接:https://blog.csdn.net/qq_28285379/article/details/87972847 。

最后此篇关于ThinkPHP5+UEditor图片上传到阿里云对象存储OSS功能示例的文章就讲到这里了,如果你想了解更多关于ThinkPHP5+UEditor图片上传到阿里云对象存储OSS功能示例的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com