本人菜鸟一枚,最近公司有需求要用到富文本编辑器,我选择的是百度的ueditor富文本编辑器,闲话不多说,进入正题:
一:ueditor的下载及安装以及OSS的下载及引入我就不详细说了,这里说下要注意的几点:   
     1,ueditor下载地址http://ueditor.baidu.com/website/download.html,记得下载的是开发版-完整源码版
     2,oss-Java-sdk下载地址:https://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/internal/oss/0.0.4/assets/sdk/aliyun_java_sdk_20160510.zip?spm=5176.doc32009.2.1.0lQMOb&file=aliyun_java_sdk_20160510.zip
     3,至于ueditor安装及初始化方法,自行百度。OSS引入包放如项目lib文件夹即可开始使用

4,此实例只新增UploadOSSUtil.java及修改BinaryUploader.java即可,其他地方不用做任何修改
二:安装完成后需要更改的地方:        
     1,打开包com.baidu.ueditor,upload,新建class文件:UploadOSSUtil.java内容如下

[java] view plain copy

 
  1. /**
  2. * 上传到阿里云:xhj
  3. *
  4. *
  5. */
  6. import java.io.FileNotFoundException;
  7. import java.io.InputStream;
  8. import com.aliyun.oss.OSSClient;
  9. public class UploadOSSUtil {
  10. public UploadOSSUtil(){}
  11. public static void uploadImgAliyun(InputStream inputStream ,String fileName)
  12. throws FileNotFoundException{
  13. String accesskeyId = "***你的阿里云accesskeyId***" ;
  14. String accessKeySecret = "***你的阿里云accessKeySecret***" ;
  15. String endpoint = "http://oss-cn-shenzhen.aliyuncs.com" ;
  16. String bucketName = "***你的bucketName***" ;
  17. OSSClient client = new OSSClient(endpoint,accesskeyId,accessKeySecret);
  18. //此处"xxxx/yyyy/"+fileName,表示上传至阿里云中xxxx文件夹下的yyyy文件夹中,请修改为自己的路径即可
  19. client.putObject(bucketName, "xxxx/yyyy/"+fileName, inputStream);
  20. client.shutdown();
  21. }
  22. }

修改同目录下的BinaryUploader.java的save()

[java] view plain copy

 
  1. public static final State save(HttpServletRequest request,
  2. Map<String, Object> conf) {
  3. FileItemStream fileStream = null;
  4. boolean isAjaxUpload = request.getHeader( "X_Requested_With" ) != null;
  5. if (!ServletFileUpload.isMultipartContent(request)) {
  6. return new BaseState(false, AppInfo.NOT_MULTIPART_CONTENT);
  7. }
  8. ServletFileUpload upload = new ServletFileUpload(
  9. new DiskFileItemFactory());
  10. if ( isAjaxUpload ) {
  11. upload.setHeaderEncoding( "UTF-8" );
  12. }
  13. try {
  14. FileItemIterator iterator = upload.getItemIterator(request);
  15. while (iterator.hasNext()) {
  16. fileStream = iterator.next();
  17. if (!fileStream.isFormField())
  18. break;
  19. fileStream = null;
  20. }
  21. if (fileStream == null) {
  22. return new BaseState(false, AppInfo.NOTFOUND_UPLOAD_DATA);
  23. }
  24. String savePath = (String) conf.get("savePath");
  25. String originFileName = fileStream.getName();
  26. String suffix = FileType.getSuffixByFilename(originFileName);
  27. originFileName = originFileName.substring(0,
  28. originFileName.length() - suffix.length());
  29. savePath = savePath + suffix;
  30. long maxSize = ((Long) conf.get("maxSize")).longValue();
  31. if (!validType(suffix, (String[]) conf.get("allowFiles"))) {
  32. return new BaseState(false, AppInfo.NOT_ALLOW_FILE_TYPE);
  33. }
  34. savePath = PathFormat.parse(savePath, originFileName);
  35. String physicalPath = (String) conf.get("rootPath") + savePath;
  36. InputStream is = fileStream.openStream();
  37. /**
  38. * 上传到阿里云:xhj添加
  39. */
  40. //*******************开始***********************
  41. String fileName = new StringBuffer().append(new Date().getTime()).append(fileStream.getName().substring(fileStream.getName().indexOf("."))).toString();
  42. State storageState = null;
  43. try {
  44. new UploadOSSUtil();
  45. UploadOSSUtil.uploadImgAliyun(is,fileName);
  46. storageState = StorageManager.saveFileByInputStream(is,
  47. physicalPath, maxSize);
  48. storageState.putInfo("state", "SUCCESS");// UEDITOR的规则:不为SUCCESS则显示state的内容
  49. //注意:下面的url是返回到前端访问文件的路径,请自行修改
  50. storageState.putInfo("url","http://XXXXXX.oss-cn-shenzhen.aliyuncs.com/images/companyNewsImages/" + fileName);
  51. storageState.putInfo("title", fileName);
  52. storageState.putInfo("original", fileName);
  53. } catch (Exception e) {
  54. // TODO: handle exception
  55. System.out.println(e.getMessage());
  56. storageState.putInfo("state", "文件上传失败!");
  57. storageState.putInfo("url","");
  58. storageState.putInfo("title", "");
  59. storageState.putInfo("original", "");
  60. //System.out.println("文件 "+fileName+" 上传失败!");
  61. }
  62. //********************结束**********************
  63. is.close();
  64. /*if (storageState.isSuccess()) {
  65. storageState.putInfo("url", PathFormat.format(savePath));
  66. storageState.putInfo("type", suffix);
  67. storageState.putInfo("original", originFileName + suffix);
  68. }*/
  69. //System.out.println("storageState="+storageState);
  70. return storageState;
  71. } catch (FileUploadException e) {
  72. return new BaseState(false, AppInfo.PARSE_REQUEST_ERROR);
  73. } catch (IOException e) {
  74. }
  75. return new BaseState(false, AppInfo.IO_ERROR);
  76. }

如有疑问,欢迎提问。

关于富文本编辑器ueditor(jsp版)上传文件到阿里云OSS的简单实例,适合新手的更多相关文章

  1. PHP 上传文件至阿里云OSS对象存储

    简述 1.阿里云开通对象存储服务 OSS 并创建Bucket 2.下载PHP SDK至框架扩展目录,点我下载 3.码上code 阿里云操作 开通对象存储服务 OSS 创建 Bucket 配置Acces ...

  2. vue + elementUi + upLoadIamge组件 上传文件到阿里云oss

    <template> <div class="upLoadIamge"> <el-upload action="https://jsonpl ...

  3. PHP上传文件到阿里云OSS,nginx代理访问

    1. 阿里云OSS创建存储空间Bucket(读写权限为:公共读) 2. 拿到相关配置 accessKeyId:********* accessKeySecret:********* endpoint: ...

  4. OSS上传文件到阿里云

    最近做项目,需要上传文件,因为上传到项目路径下,感觉有时候也挺不方便的,就试了一下上传文件到阿里云oss上去了, oss的使用网上有很多介绍,都是去配置一下需要的数据,然后直接调用他的api就可以了. ...

  5. 【UEditor】 UEditor整合项目上传资源到阿里云服务器

    目录 关于此文 下载源码 JSP代码 Java代码 阿里云jar包引入配置 成功啦! 回到顶部 关于此文 项目中要实现编辑器生成带格式的html文档,存入模板,最后生成html的URL,所以选择了UE ...

  6. Simditor 富文本编辑器多选图片上传、视频连接插入

    simditor 是一个基于浏览器的所见即所得的文本编辑器.Simditor 富文本编辑器, 支持多选图片上传, 视频连接插入, HTML代码编辑以及常用富文本按钮,支持的浏览器:IE10.Firef ...

  7. wangEditor富文本编辑器使用及图片上传

    引入js文件 <script type="text/javascript" src="style/js/wangEditor.min.js">< ...

  8. 如何把base64格式的图片上传到到阿里云oss c#版

    今天碰到需要把canvas上的的图片转存到阿里云oss,于是百度了半天,一个能打的答案都没有.怒了,自己搞起. 代码超级简单,需要先引入nuget 中啊里云的oss api 1 byte[] arr ...

  9. angulaijs中的ng-upload-file与阿里云oss服务的结合,实现在浏览器端上传文件到阿里云(速度可以达到1.5M)

    2015-10-26 angularjs结合aliyun浏览器端oos文件上传加临时身份验证例子 在服务端获取sts 源码: public class StsServiceSample { // 目前 ...

随机推荐

  1. 关于Hbuild引用mui常用代码块以及部分控件.

    MUI-最接近原生APP体验的高性能前端框架, 追求性能体验,是我们开始启动MUI项目的首要目标,轻量必然是重要特征: MUI不依赖任何第三方JS库,压缩后的JS和CSS文件仅有100+K和60+K, ...

  2. C# 结构体和List<T>类型数据转Json数据保存和读取

    C#  结构体和List<T>类型数据转Json数据保存和读取 一.结构体转Json public struct FaceLibrary { public string face_name ...

  3. appium java 滑动(js滑动和swipe滑动)

    最近有一个页面的内容很多,有的元素需要滑动到底部才能看到,所以就研究一下滑动,下面是我学习到的两种滑动方式 一:用js滑动 用js滑动的思路是很简单,首先是先定位到这个元素,定位到之后不做任何操作,然 ...

  4. Linux编程基础——GDB(设置断点)

    启动GDB后,首先就是要设置断点,程序中断后才能调试.在gdb中,断点通常有三种形式: 断点(BreakPoint): 在代码的指定位置中断,这个是我们用得最多的一种.设置断点的命令是break,它通 ...

  5. Numpy与Matplotlib

    一.Numpy numpy支持大量的维度数组和矩阵运算,对数组运算提供了大量的数学函数库! numpy比Python列表更具优势,其中一个优势便是速度.在对大型数组执行操作时,numpy的速度比Pyt ...

  6. Codeforces Round #548 (Div. 2) F splay(新坑) + 思维

    https://codeforces.com/contest/1139/problem/F 题意 有m个人,n道菜,每道菜有\(p_i\),\(s_i\),\(b_i\),每个人有\(inc_j\), ...

  7. AIX X11卡顿严重

    在AIX上安装数据库,使用xshell开启dbca,发现卡顿严重,数据包也时断时续,排除掉网络问题,发现字符集采用的是中文,发现ftp服务业异常,将字符集修改成英语,重启机器,问题解决: 修改如下: ...

  8. 欣赏<沉默的大多数>——王小波

    君特·格拉斯在<铁皮鼓>里,写了一个不肯长大的人.小奥斯卡发现周围的世界太过荒诞,就暗下决心要永远做小孩子.在冥冥之中,有一种力量成全了他的决心,所以他就成了个侏儒.这个故事太过神奇,但很 ...

  9. 基于UML的时空建模

    一.基本信息 标题:基于UML的时空建模 时间:2018 出版源:东北大学学报(自然科学版) 领域分类:UML模型:RCC-8空间拓扑:Allen-13时态拓扑:时空数据:建模 二.研究背景 问题定义 ...

  10. Android 极光推送造成IM服务绑定失败bug

    由于极光推送对8.0的支持问题,升级到了最新版本的极光推送.但是最新版本的极光推送,默认将推送服务设置到了新的进程里面,由此引发 Android 极光推送多进程造成的application运行两次 和 ...