本人菜鸟一枚,最近公司有需求要用到富文本编辑器,我选择的是百度的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 /** * 上传到阿里云: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()
[java] view plain copy 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); }
如有疑问,欢迎提问。
转载于:https://www.cnblogs.com/xll1025/p/6502620.html
相关资源:ueditor(jsp版)上传文件到阿里云OSS的简单实例