在用multipart上传文件的时候,报错:

java.io.IOException: The temporary upload location [D:\apache-tomcat-8.0.9\work\Catalina\localhost\spittr\tmp\spittr\uploads] is not valid
at org.apache.catalina.connector.Request.parseParts(Request.java:2616)
at org.apache.catalina.connector.Request.getParts(Request.java:2552)
at org.apache.catalina.connector.RequestFacade.getParts(RequestFacade.java:1083)
at org.springframework.web.multipart.support.StandardMultipartHttpServletRequest.<init>(StandardMultipartHttpServletRequest.java:57)
at org.springframework.web.multipart.support.StandardServletMultipartResolver.resolveMultipart(StandardServletMultipartResolver.java:60)
at org.springframework.web.servlet.DispatcherServlet.checkMultipart(DispatcherServlet.java:1070)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:912)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:876)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:863)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:644)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:503)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:136)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:526)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1078)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:655)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:277)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2381)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2370)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:744)

原因:

    protected void customizeRegistration(Dynamic registration) {registration.setMultipartConfig(new MultipartConfigElement("/tmp/spittr/uploads",2097152,4194304,0));}

在这里设置了临时存储的路径,但是在tomcat中并没有设置。(之所以设置临时路径,是为了存储的安全性)

解决办法:

在D:\apache-tomcat-8.0.9\work\Catalina\localhost\spittr目录下新建tmp\spittr\uploads即可

但是如果重新启动tomcat的话,则临时保存的文件消失

为了达到永久保存,需要保存在磁盘上,但是此时会存在无法再网页上访问的问题:

这是需要:

解决:可以使用tomcat的配置文件将某个请求 映射到 物理路径下 ,完成图片的回显。

具体操作:使用Tomcat虚拟路径

1.修改tomcat的配置文件

window环境
首先找到tomcat目录下conf目录下的server.xml文件
在server.xml文件中找到<Host></Host>
然后在其中加上这例如这个:

<Context path="/spittr/image" docBase="E:\spittr\image"></Context>

此时
tomcat在的请求一般为http://localhost:8080/spittr/image/abc.jpg
配置完重启之后,该请求会自动跳转到物理路径E:\spittr\image下查找。会访问本机的E:\spittr\image\abc.jpg
有效解决了存储路径与tomcat路径的分离。

 

 

转载于:https://www.cnblogs.com/mswangblog/p/6565819.html

文件上传中的临时上传路径问题相关推荐

  1. 怎么恢复服务器电脑删除的文件,windows系统中u盘上被删除的文件怎么恢复?_网站服务器运行维护,windows,u盘,删除,恢复...

    win10装cad提示权限不够怎么办?_网站服务器运行维护 解决方法:跳过管理员权限来进行安装.步骤:1.在经常要使用的程序上右键单击,选择"兼容性疑难解答":2.点击" ...

  2. [总结]jsp完成文件上传中遇到的“法克”路径解决办法

    在web工程中完成文件上传,需要在jsp页面上写上如下一个控件: <input type="file" id="f" name="f" ...

  3. java读取绝对路径文件_Java 程序中使用相对和绝对路径读取文件

    在Java中用File对象来创建文件时,绝对路径一般是不会出现什么问题的,如果使用相对路径,则有可能出现意向不到的问题,以下主要是针对相对路径进行解释 1.Eclipse下的Java Project环 ...

  4. html上传文件_.NET基于WebUploader大文件分片上传、断网续传、秒传

    (给DotNet加星标,提升.Net技能) 转自:学习中的苦与乐 cnblogs.com/xiongze520/p/10412693.html 现在的项目开发基本上都用到了上传文件功能,或图片,或文档 ...

  5. js实现文件拖拽上传并显示待上传的文件列表

    此文章中完整的代码在我的github中:https://github.com/LiuFeng1011/WebTest/tree/master/upload 首先实现html页面的内容: <bod ...

  6. 游戏数学: 计算屏幕点中的平面上的点(上帝视角)

    游戏数学: 计算屏幕上点中的平面上的点(上帝视角) 应用场景 上帝视角,点击屏幕,需要计算此时点中的平面上的位置,比如将物体移到点击的位置上,或者需要拖拽物体移动 数学计算 在这里,实际上是有几个前提 ...

  7. ajax上传 java,javaWeb中使用ajax上传文件

    javaWeb上传图片 上传文件所必要的两个jar包:commons-fileupload.jar.commons-io.jar. 核心代码: String withPath = req.getSer ...

  8. php $_files怎么上传,如何利用​PHP中的 $_FILES上传文件

    PHP 中的$_FILES PHP全局$_FILES包含文件的所有信息. 在$_FILES全局变量的帮助下,我们可以得到文件名,文件类型,文件大小,临时文件名和与文件相关的错误. PHP $_FILE ...

  9. JSP中的文件操作:数据流、File类、文件浏览、目录操作、上传下载

    ​ 文件可以永久地存储信息,从本质上讲文件就是存放在盘上的一系列数据的集合.应用程序如果想长期保存数据,就必须将数据存储到文件中,这就涉及到文件的操作.而在编写网站应用程序的过程中,有许多地方要对文件 ...

最新文章

  1. R语言ggplot2可视化将颜色图例和形状的图例组合成综合图例实战
  2. linux的iso镜像机没有redis,在Linux系统上安装Redis【避坑篇】
  3. Spring Boot实战:异步编程指南
  4. AndroidStudio_ListView
  5. UI设计师的实际工作流程是什么样的?
  6. 王超:奇虎360MongoDB
  7. matlab 范德蒙德矩阵,Matlab中fft与fwelch有什么区别?如何用fft求功率谱?
  8. python与vfp做桌面数据库_VFP数据库系统开发实例(附图)
  9. C语言学习之输入两个正整数m和n,求其最大公约数和最小公倍数。
  10. Java中使用Socket实现服务器端和客户端通讯
  11. 时序数据合并场景加速分析和实现 - 复合索引,窗口分组查询加速,变态递归加速...
  12. Hive metastore整体代码分析及详解
  13. C# 生成word文档(NPOI.XWPF)
  14. potplayer如何设置以一帧一帧的逐帧播放播放?
  15. 找出冲突的Windows快捷键
  16. QTTabBar Windows资源管理器增强插件
  17. 十人面试就我通过,只因我答对了这题TCP协议为什么需要三次握手
  18. 福昕高级PDF编辑器Foxit PhantomPDF Business v9.3.0.10826企业版+破解补丁
  19. 使用ConfigFilter
  20. Numpy:repeat用法图解

热门文章

  1. 开博1个月不到,照样可以申请到text-link-ads
  2. LeetCode(617)——合并二叉树(JavaScript)
  3. 【零基础学Java】—初识Java(一)
  4. 解决margin-top塌陷问题的六种方法
  5. 超级无敌数字加密算法
  6. 两个网段怎么设置网关
  7. 墨条不如墨汁黑是怎么回事?
  8. 焦虑症患者,整天心神不宁,忧心忡忡怎么办?
  9. “做实体店,已经是绝路了吗?”
  10. 视频号的商业想象空间,在前天更新后,会在以下3个方面