GVKun编程网logo

用于Servlet 3.0的MultipartResolver的Spring 4 Java Config(spring.servlet.multipart.enabled)

16

本篇文章给大家谈谈用于Servlet3.0的MultipartResolver的Spring4JavaConfig,以及spring.servlet.multipart.enabled的知识点,同时本

本篇文章给大家谈谈用于Servlet 3.0的MultipartResolver的Spring 4 Java Config,以及spring.servlet.multipart.enabled的知识点,同时本文还将给你拓展Caused by: org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration$ArtifactResolveException: Could not resolve all files for configuration ':classpath'.、DefaultMultipartHttpServletRequest 的坑以及多文件上传 CommonsMultipartResolver、IBM Liberty概要文件服务器返回SRTServletRequest而不是spring MultiPartHttpServletRequest、is a MultipartResolver configured?等相关知识,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

用于Servlet 3.0的MultipartResolver的Spring 4 Java Config(spring.servlet.multipart.enabled)

用于Servlet 3.0的MultipartResolver的Spring 4 Java Config(spring.servlet.multipart.enabled)

我正在采用全Java的方法来配置Spring
MVC,无法弄清楚如何以编程方式将其MultipartConfigElement与我的关联DispatcherServlet

Spring文档指出:

为了使用基于Servlet 3.0的多部分解析,您需要在web.xml中用“ multipart-config”部分或
在编程性Servlet注册 中用 javax.servlet.MultipartConfigElement
标记DispatcherServlet

http://docs.spring.io/spring/docs/4.0.4.RELEASE/spring-framework-
reference/htmlsingle/#mvc-
multipart

这是我的WebApplicationInitializer代码:

public class DispatcherServletInitializer implements WebApplicationInitializer {    private static final Logger logger = LoggerFactory.getLogger(DispatcherServletInitializer.class);    @Override    public void onStartup(ServletContext container) {        // Create the ''root'' Spring application context        AnnotationConfigWebApplicationContext rootContext = new AnnotationConfigWebApplicationContext();        rootContext.register(AppConfig.class);        // Manage the lifecycle of the root application context        container.addListener(new ContextLoaderListener(rootContext));        // Create the dispatcher servlet''s Spring application context        AnnotationConfigWebApplicationContext dispatcherContext = new AnnotationConfigWebApplicationContext();        dispatcherContext.register(WebConfig.class);        //HOW CAN I ASSOCIATE THIS CONFIG WITH MY DISPATCHER SERVLET?        MultipartConfigElement config = new MultipartConfigElement("C:\\Temp", 20848820, 418018841, 1048576);        DispatcherServlet dispatcherServlet = new DispatcherServlet(dispatcherContext);        // Register and map the dispatcher servlet        ServletRegistration.Dynamic dispatcher =             container.addServlet("dispatcher", dispatcherServlet);        dispatcher.setLoadOnStartup(1);        dispatcher.addMapping("/*");    }}

如何将关联到MultipartConfigElement我的DispatcherServlet?我没有看到任何类似setMultipartConfiguration的方法或任何接受它的构造函数。

另请注意,我的WebConfig声明了MultipartResolver

@Beanpublic StandardServletMultipartResolver multipartResolver(){    return new StandardServletMultipartResolver();}

但是Spring文档指出:

Configuration settings such as maximum sizes or storage locations need to be applied at that Servlet registration level as Servlet 3.0 does not allow for those settings to be done from the MultipartResolver.

任何指导将不胜感激。

答案1

小编典典

看来您需要这个:

ServletRegistration.Dynamic dispatcher =             container.addServlet("dispatcher", dispatcherServlet);dispatcher.setLoadOnStartup(1);dispatcher.addMapping("/*");dispatcher.setMultipartConfig(new MultipartConfigElement("/tmp", 1024*1024*5, 1024*1024*5*5, 1024*1024));

Caused by: org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration$ArtifactResolveException: Could not resolve all files for configuration ':classpath'.

Caused by: org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration$ArtifactResolveException: Could not resolve all files for configuration ':classpath'.

前言

这个错误怎么看呢?

如果你对gradle 不是很了解的话,有一个建议,就是把异常背下来,当然是看这个:ArtifactResolveException哈。

而不是后面的详情。

正文

给我们详情是这个:

 Could not resolve all files for configuration '':classpath''.

其实就是说文件缺少。

然后我们看旁边的。

这是一个错误栈,你最好需要点开每一个。

我打开了其中一个详细内容,告诉我们有一个包下载不下来。

接着你不要马上去弄什么代理,你应该尝试是否这个包已经不存在了,因为可能有些包的确失效了,接着你才应该考虑代理。

总结

以上是小编为你收集整理的Caused by: org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration$ArtifactResolveException: Could not resolve all files for configuration '':classpath''.全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

DefaultMultipartHttpServletRequest 的坑以及多文件上传 CommonsMultipartResolver

DefaultMultipartHttpServletRequest 的坑以及多文件上传 CommonsMultipartResolver

实现多文件上传 CommonsMultipartResolver

 

注意:接口使用 DefaultMultipartHttpServletRequest 接收(前端 ajaxsubmit 提交表单)若使用他们则表单必须要有文件上传否则会报错!

 

2018 年 05 月 23 日 18:01:21

1、在 spring 配置文件中配置文件上传解析器

  1. <!-- 文件上传解析器 -->  
  2. <bean id="multipartResolver" >  
  3.     <property name="defaultEncoding" value="utf-8"></property>  
  4.     <property name="maxUploadSize" value="10485760000"></property><!-- 最大上传文件大小 -->  
  5.     <property name="maxInMemorySize" value="10960"></property>  
  6. </bean>  

++++++ 接口使用 ++++++++++++++++++

  1. @Controller  
  2. public class FileController{  
  3.       
  4.     @RequestMapping("/fileUpload.do")  
  5.     public String fileUpload(HttpServletRequest request,HttpServletResponse response){  
  6.         long startTime=System.currentTimeMillis ();   // 获取开始时间  
  7.           
  8.         CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext());  
  9.         if (multipartResolver.isMultipart (request)){ // 判断 request 是否有文件上传  
  10.             MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest)request;  
  11.             Iterator<String> ite = multiRequest.getFileNames();  
  12.             while(ite.hasNext()){  
  13.                 MultipartFile file = multiRequest.getFile(ite.next());  
  14.                 if(file!=null){  
  15.                     File localFile = new File("D:/"+file.getOriginalFilename());  
  16.                     try {  
  17.                         file.transferTo (localFile); // 将上传文件写到服务器上指定的文件  
  18.                     } catch (IllegalStateException e) {  
  19.                         e.printStackTrace();  
  20.                     } catch (IOException e) {  
  21.                         e.printStackTrace();  
  22.                     }  
  23.                 }  
  24.             }  
  25.         }  
  26.         long endTime=System.currentTimeMillis (); // 获取结束时间  
  27.         System.out.println ("上传文件共使用时间:"+(endTime-startTime));  
  28.           
  29.         return "success";  
  30.     }  
  31. }  

IBM Liberty概要文件服务器返回SRTServletRequest而不是spring MultiPartHttpServletRequest

IBM Liberty概要文件服务器返回SRTServletRequest而不是spring MultiPartHttpServletRequest

在父项目部署描述符中添加servlet过滤器条目后,该问题已解决。 (web.xml)。

org.springframework.web.multipart.support.MultipartFilter

is a MultipartResolver configured?

is a MultipartResolver configured?

 

 

原因:未将客户端上传的File文件,处理为multipartfile

 

解决:在xml中配置如下

<bean id="multipartResolver">
        <!-- 设置文件解析的编码,注意:一定要和页面的pageEncoding保持一致 -->
        <property name="defaultEncoding" value="UTF-8"></property>
        <!-- 设置最大上传文件大小 -->
        <property name="maxUploadSize" value="88888888"></property>
    </bean>

 

今天关于用于Servlet 3.0的MultipartResolver的Spring 4 Java Configspring.servlet.multipart.enabled的介绍到此结束,谢谢您的阅读,有关Caused by: org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration$ArtifactResolveException: Could not resolve all files for configuration ':classpath'.、DefaultMultipartHttpServletRequest 的坑以及多文件上传 CommonsMultipartResolver、IBM Liberty概要文件服务器返回SRTServletRequest而不是spring MultiPartHttpServletRequest、is a MultipartResolver configured?等更多相关知识的信息可以在本站进行查询。

本文标签: