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

it2022-05-09  37

关于富文本编辑器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内容如下

 

[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的简单实例

最新回复(0)