springMVC 整合ueditor

问题1:

      修改ueditor.config.js里面的serverUrl为自己的的请求URL后,图片上传不好用提示后台配置不成功。

问题原因:

     config.json没有加载到。

解决方法:

     修改 ConfigManager.java 下的 originalPath 改成自己的config.json的路径,可以看下initEnv()方法和getConfigPath()这个方法,originalPath这个路径应该是和config.json这个文件路径下的文件,因为initEnv()会去originalPath的父目录然后在加config.json。


问题2:

springMVC设置上传配置后图片上传提示未找到上传数据

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="maxUploadSize" value="52428800"/>     
</bean>

问题原因:

     springMVC对接收的request已经解析过一遍,里面的文件不能在次取到。

解决方法:

    自己新增springMVC处理上传的方法,对图片、试片和附件进行处理。可以在ActionEnter下switch的时候处理,也可以在Uploader时进行处理。

public class SpringMVCUploader
{
    public static final State save(HttpServletRequest request, Map<String, Object> conf)
    {
        if (request instanceof MultipartHttpServletRequest)
        {
            try
            {
                CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext());

                if(multipartResolver.isMultipart(request))
                {
                    MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest)request;

                    Iterator<String> iter = multiRequest.getFileNames();
                    MultipartFile file = null;

                    while(iter.hasNext())
                    {
                        file = multiRequest.getFile(iter.next());

                        if(file != null)
                        {
                            break;
                        }

                        file = null;
                    }

                    if (file == null)
                    {
                        return new BaseState(false, AppInfo.NOTFOUND_UPLOAD_DATA);
                    }

                    String savePath = (String) conf.get("savePath");
                    String originFileName = file.getOriginalFilename();
                    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 = file.getInputStream();

                    State storageState = StorageManager.saveFileByInputStream(is, physicalPath, maxSize);
                    is.close();

                    if (storageState.isSuccess()) {
                        storageState.putInfo("url", PathFormat.format(savePath));
                        storageState.putInfo("type", suffix);
                        storageState.putInfo("original", originFileName + suffix);
                    }

                    return storageState;
                }
            }
            catch (Exception e)
            {
                return new BaseState(false, AppInfo.PARSE_REQUEST_ERROR);
            }
        }

        return new BaseState(false, AppInfo.IO_ERROR);
    }

    private static boolean validType(String type, String[] allowTypes)
    {
        List<String> list = Arrays.asList(allowTypes);

        return list.contains(type);
    }
}


  

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值