ueditor上传到阿里云(代码最少改动)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013024120/article/details/53581197

ueditor上传到阿里云(代码最少改动)


  1. 官网下载 ueditor1_4_2-utf8-jsp,这里提供下载地址,里面不包含jar包。http://download.csdn.net/detail/u013024120/9708899
  2. 把编辑器放入JavaWeb项目中,引入jar包,测试图片,视频,文件的上传功能,一般可以直接正常使用。
  3. 找到编辑器里jsp文件夹打开,其中config.json是上传路径配置不用修改;打开controller.jsp,把其中”代码1”替换为”代码2”搞定,其中,ChangeOSS类是我手动创建的一个用来替换图片或视屏地址的类。
// 代码1
out.write( new ActionEnter( request, rootPath ).exec() );
// 代码2
out.write( ChangeOSS.changeOSSFunction(request, new ActionEnter( request, rootPath ).exec() ));

ChangeOSS类定义如下,这里要注意的是StringUtil.isBlank()要判断空,空串,”null”字符串:

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import com.alibaba.fastjson.JSONObject;

public class ChangeOSS {
    public static String changeOSSFunction(HttpServletRequest request, String json) {

        if (!StringUtil.isBlank(json)) {

            @SuppressWarnings("unchecked")
            Map<String, Object> map = JSONObject.parseObject(json, Map.class);

            if (true) {
                // 点击上传图片
                String url = map.get("url") + "";

                if (!StringUtil.isBlank(url)) {

                    String fileName = url.substring(url.lastIndexOf("/") + 1);

                    try {
                        String r = request.getSession().getServletContext().getRealPath("");
                        // r = r.substring(0, r.lastIndexOf("[PROJECT_NAME]") - 1); // 如果编辑器获取到的真实路径和项目同级,需要加上这一句。
                        String path = r + url;

                        File file = new File(path);

                        InputStream imgStream = new FileInputStream(file);
                        OSSUtil.uploadFile(fileName, imgStream);
                        imgStream.close();
                    } catch (Exception e) {
                        e.printStackTrace();
                    }

                    map.put("url", "http://xxx.oss-cn-beijing.aliyuncs.com/" + fileName);
                }
            }

            if (true) {
                // 点击上传图片
                String list = map.get("list") + "";

                if (!StringUtil.isBlank(list)) {

                    @SuppressWarnings("unchecked")
                    List<Object> listINFO = JSONObject.parseObject(list, ArrayList.class);

                    for (int i = 0; i < listINFO.size(); i++) {

                        @SuppressWarnings("unchecked")
                        Map<String, Object> mapList = JSONObject.parseObject(listINFO.get(i) + "", Map.class);
                        String urllist = mapList.get("url") + "";

                        if (!StringUtil.isBlank(urllist)) {

                            String fileName = urllist.substring(urllist.lastIndexOf("/") + 1);

                            try {
                                String r = request.getSession().getServletContext().getRealPath("");
                                // r = r.substring(0, r.lastIndexOf("[PROJECT_NAME]") - 1); // 如果编辑器获取到的真实路径和项目同级,需要加上这一句。
                                String path = r + urllist;

                                File file = new File(path);

                                InputStream imgStream = new FileInputStream(file);
                                OSSUtil.uploadFile(fileName, imgStream);
                                imgStream.close();
                            } catch (Exception e) {
                                e.printStackTrace();
                            }
                            mapList.put("url", "http://xxx.oss-cn-beijing.aliyuncs.com/" + fileName);

                            listINFO.set(i, mapList);
                        }
                    }
                    map.put("list", listINFO);
                }
            }
            return JSONObject.toJSONString(map);
        }
        return json;
    }
}

附StringUtil方法:

    /**
     * String为空判断
     */
    public static boolean isBlank(String str) {
        int strLen;

        if ((str == null) || "null".equals(str) || ((strLen = str.length()) == 0)) {
            return true;
        }
        for (int i = 0; i < strLen; i++) {
            if (!Character.isWhitespace(str.charAt(i))) {
                return false;
            }
        }
        return true;
    }

猜你喜欢

转载自blog.csdn.net/u013024120/article/details/53581197
今日推荐