您的位置:首页 > 编程语言 > Java开发

使用spring上传失败,找不到临时文件.tmp' does not exist

2017-05-02 09:41 507 查看
错误如下:

java.io.FileNotFoundException: F:\eclipse\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost\HDFSWEB\upload_bb75deb0_8915_42db_8dd0_ea16edd74233_00000000.tmp (系统找不到指定的文件。)
java.io.FileInputStream.open0(Native Method)
java.io.FileInputStream.open(Unknown Source)
java.io.FileInputStream.<init>(Unknown Source)
com.company.serviceImpl.hdfsServiceImpl.createFile(hdfsServiceImpl.java:100)
com.company.controller.hdfsController.upLoad(hdfsController.java:92)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:175)
org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:446)
org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:434)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:943)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:877)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:966)
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:868)
javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:842)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)

  

      最开始认为找不到指定文件是代码出错,后面测试后发现不是这个错误,然后在不经意的时候上传了一个大于3MB的文件,发现成功。

  于是找到错误原因,是spring配置文件出错。  

    <bean id="multipartResolver"    

        class="org.springframework.web.multipart.commons.CommonsMultipartResolver">    

        <!-- 默认编码 -->  

        <property name="defaultEncoding" value="utf-8" />    

        <!-- 文件大小最大值 -->  

        <property name="maxUploadSize" value="10485760000" />    

        <!-- 内存中的最大值 -->  

        <property name="maxInMemorySize" value="40960" />    

    </bean>   

    这里的maxInMemorySIze 是文件上传的时候写到内存中的最大值,默认是10240字节,如果这里写大了,那么小于这个参数的文件则不会创建临时文件。

  最后改成了  <property name="maxInMemorySize" value="1" />后正常   

原文连接:http://blog.csdn.net/hanger_liu/article/details/51970784
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐