本文总结得不好,如果有人和我遇到同样的问题,先别急着看我咋改的,因为,前面的是我昨天写的,写到后面,最后发现是路径问题,这个路径问题我搞了很久,很久,很久,今早起来我都觉得要放弃的时候,我又尝试着改了一下那个controller的代码里面的rootPath,改回原来的,居然,成功了,照片能上传能显示,但是在后台测试输出的路径感觉很奇怪,但是既然能成功了,作为小菜鸟的我也不敢再轻易改动了。

其实网上的大部分的办法都是可行的,如果换在自己项目上,感觉不行,那大部分都是路径问题,建议下载源代码,可以进去看看源代码怎么写的,可以输出一下各种信息,让你更了解在哪出了问题,我就是,不停的sysout,一直翻源代码,我都觉得对这个源码都熟悉了。

我总结了我自己出错的两个重点,一,json文件是否读取到;二:路径!路径!路径!这个不好说,要看你自己的项目,这个得自己摸索。加油,我耗时一周,终于配置成功了。抱歉,学艺不精,求不喷。

我的毕设也要用到富文本编辑器,我选择了Ueditor,网上很多人也用了,有些改配置改得很简单就成功了,有些还要修改源码,我都试过了,按照网上的方式,上传图片终究配置不成功,之前我的配置是按照网上的,在这不详细写了,一搜一大把,这里主要是记录我在网上查不到的解决办法。

以为配置成功了,结果点击上传图片就一直转圈圈。

控制台查看错误:

ueditor.all.js:24557 Uncaught ReferenceError: errorHandler is not defined
    at HTMLInputElement.<anonymous> (ueditor.all.js:24557)
(anonymous) @ ueditor.all.js:24557

我按照网上改写的controller代码

@RequestMapping("/config")public void ueditorConfig(HttpServletRequest request, HttpServletResponse response) {System.out.println("edite 经过的request");response.setContentType("application/json");response.setHeader("ContentType", "text/html");String action = request.getParameter("action");System.out.println("action:"+action);String rootPath = request.getSession().getServletContext().getRealPath("/");System.out.println("rootPath:"+rootPath);try {request.setCharacterEncoding("utf-8");String exec = new ActionEnter(request, rootPath).exec();System.out.println("exec"+exec);//输出了错误信息PrintWriter writer = response.getWriter();writer.write(exec);writer.flush();writer.close();} catch (IOException e) {System.out.println("edite 经过的request出错..");}}

发现控制台输出:

edite 经过的request
action:config
rootPath:/Users/chenjiafeng/IdeaProjects/TSS/target/TSS-1.0-SNAPSHOT/
exec{"state": "\u914d\u7f6e\u6587\u4ef6\u521d\u59cb\u5316\u5931\u8d25"}
edite 经过的request

\u914d\u7f6e\u6587\u4ef6\u521d\u59cb\u5316\u5931\u8d25。百度这句话的意思是配置文件初始化失败

又百度了很久,我猜测,是不是读取不到config.json,于是我在源码下测试:

(怎么进入方法这应该都懂的,修改源码的前提是把源码下载过来,网上的都有教程)

进入ActionEnter-->

在进入ConfigManager-->

找到该方法,输出一下这个getConfigPath看看,重启服务器,重新运行,点击上传图片,控制台输出这些信息:

edite 经过的request
action:config
rootPath:/Users/chenjiafeng/IdeaProjects/TSS/target/TSS-1.0-SNAPSHOT/
getConfigPath:/Users/chenjiafeng/IdeaProjects/TSS/target/TSS-1.0-SNAPSHOT/config.json
exec{"state": "\u914d\u7f6e\u6587\u4ef6\u521d\u59cb\u5316\u5931\u8d25"}

这问题就出来了,果然。路径出错,我这项目路径没有这个config.json文件,我就说这个rootPath路径咋怪怪的,我找找该怎么改这个路径。 我看看是路径那部分出了错,然后在刚刚那个方法输出得更细一点,酱:

private String getConfigPath () {System.out.println("getConfigPath:"+this.parentPath + File.separator + ConfigManager.configFileName);System.out.println("this.parentPath:"+this.parentPath);System.out.println("File.separator:"+File.separator);System.out.println("ConfigManager.configFileName:"+ConfigManager.configFileName);return this.parentPath + File.separator + ConfigManager.configFileName;}

又重启又运行,控制台输出以下信息:

edite 经过的request
action:config
rootPath:/Users/chenjiafeng/IdeaProjects/TSS/target/TSS-1.0-SNAPSHOT/
getConfigPath:/Users/chenjiafeng/IdeaProjects/TSS/target/TSS-1.0-SNAPSHOT/config.json
this.parentPath:/Users/chenjiafeng/IdeaProjects/TSS/target/TSS-1.0-SNAPSHOT
File.separator:/
ConfigManager.configFileName:config.json
exec{"state": "\u914d\u7f6e\u6587\u4ef6\u521d\u59cb\u5316\u5931\u8d25"}

哦豁,看见没,这个父路径的错 this.parentPath。那这个this.parentPath哪来的,我找找。

.......(此处过了很久,没改成功,但是,我直接在方法上面写了那个文件的所在路径,hehehehehe,像这样:)

(能想到这个办法,我可能是傻了吧。。。)然后,运行,我去,居然可以显示了,

没上传成功,控制台输出:

exec{"state": "\u672a\u627e\u5230\u4e0a\u4f20\u6570\u636e"}.   意思也是“未找到上传数据”

到这真正证实了,就是json文件没读到,现在读到了,又有新的问题了(此处又过了很久)。未找到数据的原因是spring拦截了。所以要写一个继承CommonsMultipartResolver的子类,放行。百度了很久,终于找到一篇是ssm的拦截,超级感谢他!

这是这位作者的链接:https://blog.csdn.net/qq_38350609/article/details/89212496

这个类是这样写的:

package com.mandy.filter;import javax.servlet.http.HttpServletRequest;public class CommonMultipartResolver extends org.springframework.web.multipart.commons.CommonsMultipartResolver {public boolean isMultipart(HttpServletRequest request){System.out.println("进入isMultipart");String uri=request.getRequestURI();System.out.println(uri);if(uri!=null&&uri.indexOf("/config")>0){System.out.println("CommonsMultipartResolver放行");return  false;}System.out.println("CommonsMultipartResolver拦截");return  super.isMultipart(request);}
}

并且要在springmvc.xml配置:(其实我之前已经有个multipartResolver,但是为了测试,先注释掉了)

 <bean id="multipartResolver"class="com.mandy.filter.CommonMultipartResolver"><!-- set the max upload size100MB --><property name="maxUploadSize"><value>104857600</value></property><property name="maxInMemorySize"><value>4096</value></property><property name="defaultEncoding"><value>utf-8</value></property></bean>

然后,再次运行,哈哈哈哈哈

显示上传成功,但是....??????

图片显示不了???好吧,发现我的控制台输出:

进入isMultipart
/TSS/TSS/TSS/upload/20200207/1581058492731010505.jpeg
CommonsMultipartResolver拦截

Failed to load resource: the server responded with a status of 404 () (这是谷歌浏览器的错误信息,也就是说,获取不到图片,那就是路径问题)

这路径一看就不对,而且也没放行。不过,确实成功上传了,虽然不是我想要的路径


这是一条分割线,中间我尝试修改了很久的代码,因为改得太多了,我都不知道要从何说起,但是现在配置成功了,我就把我成功的代码贴上去,大家好参考参考。

controller的代码:

@RequestMapping("/config")public void ueditorConfig(HttpServletRequest request, HttpServletResponse response) {response.setContentType("application/json");response.setHeader("ContentType", "text/html");String action = request.getParameter("action");System.out.println("action:" + action);String rootPath = request.getSession().getServletContext().getRealPath("/");try {request.setCharacterEncoding("utf-8");String exec = new ActionEnter(request, rootPath).exec();System.out.println("exec" + exec);//输出了错误信息PrintWriter writer = response.getWriter();writer.write(exec);writer.flush();writer.close();} catch (IOException e) {System.out.println("edite 经过的request出错..");}}

config.json配置(就是修改了图片访问前缀和保存路径)

其他都和网上教程一样的,大家自行百度,以下是配置好的,能显示图片了。

SSM整合Ueditor的上传图片功能常见错误解决办法相关推荐

  1. linux编译安装的报错,linux编译安装时常见错误解决办法

    This article is post on https://coderwall.com/p/ggmpfa 原文链接:http://www.bkjia.com/PHPjc/1008013.html ...

  2. LR运行常见错误解决办法

    LR运行常见错误解决办法  一.Step download timeout (120 seconds) 这是一个经常会遇到的问题,解决得办法走以下步骤: 1.修改run time setting中的请 ...

  3. PHP编译安装时常见错误解决办法,php编译常见错误

    PHP编译安装时常见错误解决办法,php编译常见错误 1.configure: error: xslt-config not found. Please reinstall the libxslt & ...

  4. linux libvpx编译安装,linux编译安装时常见错误解决办法

    **configure: error: xslt-config not found. Please reinstall the libxslt >= 1.1.0 distribution** 复 ...

  5. linux源码安装php缺少动态库,php源代码安装常见错误解决办法

    php源代码安装常见错误解决办法 错误:configure: error: libevent >= 1.4.11 could not be found 解决:yum -y install lib ...

  6. denied ftp permission_FTP常见错误解决办法

    一般来说,只要网站能访问,FTP就应该能连接的,之前好长一段时间一直遇到连接不上香港主机的问题,还以为是宽带出口线路不好,原来是自己学识浅薄,在同事的指点下才明白所以然,下面总结一下FTP连接中的常见 ...

  7. ftp服务器上的文件发生错误450,FTP常见错误解决办法

    一般来说,只要网站能访问,FTP就应该能连接的,之前好长一段时间一直遇到连接不上香港主机的问题,还以为是宽带出口线路不好,原来是自己学识浅薄,在同事的指点下才明白所以然,下面总结一下FTP连接中的常见 ...

  8. Oracle19c安装教程及PLSQL配置常见错误解决办法

    本人电脑上也装了不少比较难以安装的程序,而且也亲身破解了一些软件,自己以前也安装过MySQL和DB2,原以为Oracle也差不多,直到我亲身经历了,我才知道什么是痛苦.帅帅本人在经历了长时间的折磨之后 ...

  9. elasticsearch常见错误解决办法

    es常见问题 1.elasticsearch 启动报错 max virtual memory areas vm.max_map_count [65530] is too low, increase t ...

最新文章

  1. 与Susan Fowler探讨生产就绪微服务之问答
  2. webservice入门程序学习中经验总结
  3. 做好新型冠状病毒防疫 |春节第一重任:说服爸妈带口罩
  4. linux deepin手动升级内核命令
  5. JS常用的表单验证(数字、长度,汉字,邮箱,手机号,身份证等)
  6. 在Android中使用Protocol Buffers
  7. 一文教你使用java开发一款推箱子游戏
  8. python3中property使用方法详解
  9. python中pep8规范_Python PEP8规范
  10. iOS开发中的单元测试(三)——URLManager中的测试用例解析
  11. 一致性hash算法Consistent Hashing
  12. Android 常见 Memory Leak 原因及解决办法总结
  13. 关于mongodb的学习与探索二
  14. 通俗易懂的数学建模示例(一)
  15. 对Movielens数据集进行评分预测
  16. 计算机中 b、KB、MB、GB、TB之间的换算关系
  17. python 已知三条边求三角形的角度
  18. 微信公众号开发:实人认证,活体人脸识别解决方案
  19. 用C++实现简单的小游戏
  20. 华为云 云耀云服务器初体验

热门文章

  1. English Summary~August
  2. 金海佳学C++primer 练习9.14
  3. 废纸箱机器人图纸_手工制作大全:手绘纸箱机器人
  4. 数字魔方c语言程序,关于数字魔方的问题
  5. 行人重识别(1)——行人检测综述
  6. 看我小穷仔和富家MM的经典图聊!!
  7. 数据库的设计的六个阶段
  8. 偷看了女友的日记,我泪流满面【转载】
  9. 第三方支付平台漏洞多 消费者1个月内被19次盗刷
  10. Qt编写可视化大屏电子看板系统3-新建布局