关于富文本编辑器ueditor(jsp版)上传文件到阿里云OSS的简单实例,适合新手
本人菜鸟一枚,最近公司有需求要用到富文本编辑器,我选择的是百度的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内容如下
- /**
- * 上传到阿里云:xhj
- *
- *
- */
- import java.io.FileNotFoundException;
- import java.io.InputStream;
- import com.aliyun.oss.OSSClient;
- public class UploadOSSUtil {
- public UploadOSSUtil(){}
- public static void uploadImgAliyun(InputStream inputStream ,String fileName)
- throws FileNotFoundException{
- String accesskeyId = "***你的阿里云accesskeyId***" ;
- String accessKeySecret = "***你的阿里云accessKeySecret***" ;
- String endpoint = "http://oss-cn-shenzhen.aliyuncs.com" ;
- String bucketName = "***你的bucketName***" ;
- OSSClient client = new OSSClient(endpoint,accesskeyId,accessKeySecret);
- //此处"xxxx/yyyy/"+fileName,表示上传至阿里云中xxxx文件夹下的yyyy文件夹中,请修改为自己的路径即可
- client.putObject(bucketName, "xxxx/yyyy/"+fileName, inputStream);
- client.shutdown();
- }
- }
修改同目录下的BinaryUploader.java的save()
- public static final State save(HttpServletRequest request,
- Map<String, Object> conf) {
- FileItemStream fileStream = null;
- boolean isAjaxUpload = request.getHeader( "X_Requested_With" ) != null;
- if (!ServletFileUpload.isMultipartContent(request)) {
- return new BaseState(false, AppInfo.NOT_MULTIPART_CONTENT);
- }
- ServletFileUpload upload = new ServletFileUpload(
- new DiskFileItemFactory());
- if ( isAjaxUpload ) {
- upload.setHeaderEncoding( "UTF-8" );
- }
- try {
- FileItemIterator iterator = upload.getItemIterator(request);
- while (iterator.hasNext()) {
- fileStream = iterator.next();
- if (!fileStream.isFormField())
- break;
- fileStream = null;
- }
- if (fileStream == null) {
- return new BaseState(false, AppInfo.NOTFOUND_UPLOAD_DATA);
- }
- String savePath = (String) conf.get("savePath");
- String originFileName = fileStream.getName();
- String suffix = FileType.getSuffixByFilename(originFileName);
- originFileName = originFileName.substring(0,
- originFileName.length() - suffix.length());
- savePath = savePath + suffix;
- long maxSize = ((Long) conf.get("maxSize")).longValue();
- if (!validType(suffix, (String[]) conf.get("allowFiles"))) {
- return new BaseState(false, AppInfo.NOT_ALLOW_FILE_TYPE);
- }
- savePath = PathFormat.parse(savePath, originFileName);
- String physicalPath = (String) conf.get("rootPath") + savePath;
- InputStream is = fileStream.openStream();
- /**
- * 上传到阿里云:xhj添加
- */
- //*******************开始***********************
- String fileName = new StringBuffer().append(new Date().getTime()).append(fileStream.getName().substring(fileStream.getName().indexOf("."))).toString();
- State storageState = null;
- try {
- new UploadOSSUtil();
- UploadOSSUtil.uploadImgAliyun(is,fileName);
- storageState = StorageManager.saveFileByInputStream(is,
- physicalPath, maxSize);
- storageState.putInfo("state", "SUCCESS");// UEDITOR的规则:不为SUCCESS则显示state的内容
- //注意:下面的url是返回到前端访问文件的路径,请自行修改
- storageState.putInfo("url","http://XXXXXX.oss-cn-shenzhen.aliyuncs.com/images/companyNewsImages/" + fileName);
- storageState.putInfo("title", fileName);
- storageState.putInfo("original", fileName);
- } catch (Exception e) {
- // TODO: handle exception
- System.out.println(e.getMessage());
- storageState.putInfo("state", "文件上传失败!");
- storageState.putInfo("url","");
- storageState.putInfo("title", "");
- storageState.putInfo("original", "");
- //System.out.println("文件 "+fileName+" 上传失败!");
- }
- //********************结束**********************
- is.close();
- /*if (storageState.isSuccess()) {
- storageState.putInfo("url", PathFormat.format(savePath));
- storageState.putInfo("type", suffix);
- storageState.putInfo("original", originFileName + suffix);
- }*/
- //System.out.println("storageState="+storageState);
- return storageState;
- } catch (FileUploadException e) {
- return new BaseState(false, AppInfo.PARSE_REQUEST_ERROR);
- } catch (IOException e) {
- }
- return new BaseState(false, AppInfo.IO_ERROR);
- }
如有疑问,欢迎提问。
关于富文本编辑器ueditor(jsp版)上传文件到阿里云OSS的简单实例,适合新手的更多相关文章
- PHP 上传文件至阿里云OSS对象存储
简述 1.阿里云开通对象存储服务 OSS 并创建Bucket 2.下载PHP SDK至框架扩展目录,点我下载 3.码上code 阿里云操作 开通对象存储服务 OSS 创建 Bucket 配置Acces ...
- vue + elementUi + upLoadIamge组件 上传文件到阿里云oss
<template> <div class="upLoadIamge"> <el-upload action="https://jsonpl ...
- PHP上传文件到阿里云OSS,nginx代理访问
1. 阿里云OSS创建存储空间Bucket(读写权限为:公共读) 2. 拿到相关配置 accessKeyId:********* accessKeySecret:********* endpoint: ...
- OSS上传文件到阿里云
最近做项目,需要上传文件,因为上传到项目路径下,感觉有时候也挺不方便的,就试了一下上传文件到阿里云oss上去了, oss的使用网上有很多介绍,都是去配置一下需要的数据,然后直接调用他的api就可以了. ...
- 【UEditor】 UEditor整合项目上传资源到阿里云服务器
目录 关于此文 下载源码 JSP代码 Java代码 阿里云jar包引入配置 成功啦! 回到顶部 关于此文 项目中要实现编辑器生成带格式的html文档,存入模板,最后生成html的URL,所以选择了UE ...
- Simditor 富文本编辑器多选图片上传、视频连接插入
simditor 是一个基于浏览器的所见即所得的文本编辑器.Simditor 富文本编辑器, 支持多选图片上传, 视频连接插入, HTML代码编辑以及常用富文本按钮,支持的浏览器:IE10.Firef ...
- wangEditor富文本编辑器使用及图片上传
引入js文件 <script type="text/javascript" src="style/js/wangEditor.min.js">< ...
- 如何把base64格式的图片上传到到阿里云oss c#版
今天碰到需要把canvas上的的图片转存到阿里云oss,于是百度了半天,一个能打的答案都没有.怒了,自己搞起. 代码超级简单,需要先引入nuget 中啊里云的oss api 1 byte[] arr ...
- angulaijs中的ng-upload-file与阿里云oss服务的结合,实现在浏览器端上传文件到阿里云(速度可以达到1.5M)
2015-10-26 angularjs结合aliyun浏览器端oos文件上传加临时身份验证例子 在服务端获取sts 源码: public class StsServiceSample { // 目前 ...
随机推荐
- 笔记本电脑连接wifi,同时提供热点wifi给手机使用
笔记本电脑连接wifi,同时提供热点wifi给手机使用 用电脑建立WiFi供手机平板设备使用ps:电脑需要有无线网卡,一般笔记本都自带 此教程仅适用Windows 7 & 8,1.打开笔记本的 ...
- ie9 不执行js,打开控制台就好了
IE仅在开启developer tools的时候,脚本才能访问到console这个对象 (console在代码调试时很有帮助,但是在生产环境中,应该移除掉,或至少应该先判断这个对象是否存在,毕竟无插件 ...
- css摘要
由于需要,今天花三个小时了解一下css,在此记录一些摘要: 参考w3school 1. 当同一个 HTML 元素被不止一个样式定义时,会使用哪个样式呢? 一般而言,所有的样式会根据下面的规则层叠于一个 ...
- Libgdx slg游戏进程记录
2月16日缩放居中,stage确定点击坐标,背景处理为actor 2月17日地图多次点击 2月19日stage确定点击位置(贝塞尔曲线六边形) 2月24日格式长度,读取xml属性解析btl保存 3月1 ...
- 83、源代码管理工具(Git)
一.简介 git是一款开源的分布式版本控制工具 在世界上所有的分布式版本控制工具中,git是最快.最简单.最流行的 git起源 作者是Linux之父:Linus Benedict Torvalds 当 ...
- php方法传参
带默认值的可以不传,function getColum($a=array(),$colum='id',$null=true,$colim2=null)这几个都可以不传,如果是:function get ...
- js事件的绑定与移除
事件的绑定分为3类: <div id='clickEvent'>点击事件</div> 在DOM元素中直接绑定 <div onclick="alert('4567 ...
- Paper | Octave Convolution(OctConv)
目录 1. 尺度空间理论(scale-space theory) 2. OctConv 3. 启发 论文:Drop an Octave: Reducing Spatial Redundancy in ...
- Java基础之Java常用类--Object类,字符串相关类,包装类,日期相关类,数字相关类
Java是一种面向对象的语言,也就是将万事万物可以描述为对象,特点如下: 1.面向对象是常见的一种思考习惯,符合人们的思考习惯.2.面向对象的出现,将复杂的事情简单化.3.面向对象的出现,将之前过程中 ...
- 解决windows server在关闭远程桌面后开启的服务也随之关闭的问题
首先远程登录服务器,关闭所有tomcat进程以及所有java进程,使用 netstat命令检查tomcat端口是否仍在监听状态,如仍在监听,使用taskkill杀死进程, 接下来关闭系统tomcat服 ...