Ueditor 上传云存储,上传阿里云oss上传腾讯云万象优图,腾讯云cos

阅读: 评论:0

Ueditor 上传云存储,上传阿里云oss上传腾讯云万象优图,腾讯云cos

Ueditor 上传云存储,上传阿里云oss上传腾讯云万象优图,腾讯云cos

Ueditor 上传云存储,上传阿里云oss上传腾讯云万象优图,腾讯云cos

截至本文发表

ueditor的最新版本为UEditor 1.4.3.1版本

遵循对ueditor 官方文件‘0’ 修改的原则,保持ueditor的纯净的前提下,通过配置fig.js和config.json,以及增加自己的业务类来实现需要的功能,而不对ueditor的前台任何js或者其他文件,以及官方给的jar包等作出任何修改;

各大云存储给的api接口基本上大体相似,首先从阿里云oss开始,因为阿里云oss功能相对比较完善,强大。实现了阿里云,其他的云存储相对较简单实现。

本文是基于ueditor jsp版本的,后台框架使用的jfinal。

注意:我们这里的上传云存储,主要流程是,通过官方的默认上传方式方法流程,把文件上传到服务器本地,然后在上传到相应的云存储里,而不是用户端直接上传云存储而不经过服务器(不经过服务器而直传云存储的方式方法后面补充)。

上图为ueditor的官方下载的文件,解压后是这样的结构,把它放到自己的目录下面,我这里放到我的WebRoot下的extends文件夹。

关于jsp/lib下面的jar包全部copy到我们的Web-Inf下面的lib里面;

我们主要是对该主目录下面的fig.js做一些配置的修改,其他文件保持不变。

 

Ueditor默认走的是上图所示 jsp/controller.jsp的jsp。

我们主要对serverUrl进行配置,配置为自己的controller的action。虽然我们配置为我们自己的action,但是上传机制还是用的ueditor官方jsp版本的,而不是我们自己的上传机制。

 

(这里需要对官方给的jsp 的demo原理进行大体的了解,如果不了解官方的上传处理机制,那么就无法对ueditor进行正确的改进。关于ueditor官方demo的原理请看这里)

由于官方的实现由于有若干不合理的地方,所以这里我们重写主要的入口类ActionEnter.java;

 

如上图所示ueditor的后台代码我们主要有这几个类;

1:ActionEnter.java该类是ueditor后台的主要入口,这里使用我们同名的类来代替ueditor官方文件里的ActionEnter类,该类完全copy自官方的文件只对其中的一个地方做了修改:

 

如上图所示,之所以修改这里,是因为官方给的demo里限定死了这个路径,导致了我们的config.json必须放到某个位置,而不能随意修改位置。这里我们修改为变量形势

configPath:config.json的 相对于根目录webroot的路径地址

这样config.json 可以放到程序的任意位置;

 

2.UeditorController.java:该类是控制器,是主要的请求入口类作用和官方的controller.jsp文件一样的,来负责控制请求的转发;

3.UeditorService.java:该类是业务逻辑类,主要的业务逻辑都在这里实现,比如上传文件到阿里云还是腾讯云等;

4.Config.json 是官方文件中在jsp文件夹下面和controller.jsp同目录的后台配置文件,该文件可以放到任何我们程序目录的任意位置,这里为了方便放到同一个目录下面;

 

 

下面是控制器的主要方法:

public void index() throws UnsupportedEncodingException{//rootPath 网站根目录String rootPath &#WebRootPath();String action &#Para( "action" );//这里把config.json放到了和该类同一个目录下;加上contextPath是因为在后面百度会判断是否有并且去掉该串;String configpath = contextPath&#Path(getClass()).substring(rootPath.length())+"/config.json";String  rs = new ActionEnter( request, rootPath,configpath ).exec();System.out.println(rs);if(Boolean.Prop("config.properties").get("is_upload_cloud"))){//是否上传到云存储,不上传云存储,存储在服务器本地则直接返回//暂定图片,文件,涂鸦才上传到云存储;if("uploadimage".equals(action)||"uploadfile".equals(action)||"uploadscrawl".equals(action)){rs = ueditorService.ueUpload(action,rs);//调用上传云存储逻辑;}}//返回jsonString  结果derJson(rs);}

 

主要的上传云存储的逻辑在这一句代码里面;

rs = ueditorService.ueUpload(action,rs); 

具体的实现都在ueditorService这个业务逻辑类里面;

关于这个如何实现的上传到不同的云存储,需要结合不同云存储服务商给的sdk和api来实现。

下面是上传到阿里云存储的一个简单的实现方法逻辑,上传到其他云存储基本上原理一致。

JSONObject jsonObj = JSON.parseObject(rs);String state = String("state");if("SUCCESS".equals(state)){//只对成功的情况进行处理String bucketName = "bucketName";  File file = new WebRootPath()&#("url").toString());Clitent().putObject(bucketName, String("url").substring(1), file);return rs;}

这里调用的是aliyun oss给的javasdk 的putObject方法来上传到阿里云oss的。由于阿里云存储目录结构保持和我们本地的一致,所以这里的rs我们不需要改变直接返回即可。注意把config.json的imageUrlPrefix 项配置成为自己的oss访问地址。

 

 

这样我们就在对官方文件‘0’修改的情况下完成了文件上传到本地服务器后在上传到相应的云存储中。

 

转载于:

本文发布于:2024-02-01 21:53:10,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170679559439652.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:腾讯   上传   万象   阿里   Ueditor
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23