详解spring mvc(注解)上传文件的简单例子
springmvc(注解)上传文件的简单例子。
这有几个需要注意的地方
1.form的enctype=”multipart/form-data”这个是上传文件必须的
2.applicationContext.xml中<beanid=”multipartResolver”class=”org.springframework.web.multipart.commons.CommonsMultipartResolver”/>关于文件上传的配置不能少
3、亲这两个jar包不能少哦,之前就是因为少了这个两个jar,一直报一些奇葩的错,给我累了个半死~(版本没什么要求)
commons-fileupload-1.2.2.jar
commons-io-2.0.1.jar
大家可以看具体代码如下:
web.xml
<?xmlversion="0"encoding="UTF-8"?> <web-appxmlns:xsi="http://wwwworg/2001/XMLSchema-instance"xmlns="http://javasuncom/xml/ns/javaee"xmlns:web="http://javasuncom/xml/ns/javaee/web-app_2_xsd"xsi:schemaLocation="http://javasuncom/xml/ns/javaeehttp://javasuncom/xml/ns/javaee/web-app_2_xsd"id="WebApp_ID"version="5"> <display-name>webtest</display-name> <listener> <listener-class>orgspringframeworkwebcontextContextLoaderListener</listener-class> </listener> <context-param> <param-name>contextConfigLocation</param-name> <param-value> /WEB-INF/config/applicationContextxml /WEB-INF/config/codeifActionxml </param-value> </context-param> <servlet> <servlet-name>dispatcherServlet</servlet-name> <servlet-class>orgspringframeworkwebservletDispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/config/codeifActionxml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <!--拦截所有以do结尾的请求--> <servlet-mapping> <servlet-name>dispatcherServlet</servlet-name> <url-pattern>*do</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>indexdo</welcome-file> </welcome-file-list> </web-app>
applicationContext.xml
<?xmlversion="0"encoding="UTF-8"?> <beansxmlns="http://wwwspringframeworkorg/schema/beans" xmlns:xsi="http://wwwworg/2001/XMLSchema-instance"xmlns:p="http://wwwspringframeworkorg/schema/p" xmlns:context="http://wwwspringframeworkorg/schema/context" xsi:schemaLocation="http://wwwspringframeworkorg/schema/beanshttp://wwwspringframeworkorg/schema/beans/spring-beans-xsd http://wwwspringframeworkorg/schema/contexthttp://wwwspringframeworkorg/schema/context/spring-context-xsd" default-lazy-init="true"> <!--启动SpringMVC的注解功能,完成请求和注解POJO的映射--> <beanclass="orgspringframeworkwebservletmvcannotationAnnotationMethodHandlerAdapter"lazy-init="false"/> <!--另外最好还要加入DefaultAnnotationHandlerMapping,不然会被XML或其它的映射覆盖!--> <beanclass="orgspringframeworkwebservletmvcannotationDefaultAnnotationHandlerMapping"/> <!--对模型视图名称的解析,即在模型视图名称添加前后缀--> <beanclass="orgspringframeworkwebservletviewInternalResourceViewResolver"p:prefix="/WEB-INF/jsp/"p:suffix="jsp"/> <!--支持上传文件--> <beanid="multipartResolver"class="orgspringframeworkwebmultipartcommonsCommonsMultipartResolver"/> </beans>
codeifAction.xml
<?xmlversion="0"encoding="UTF-8"?> <beansxmlns="http://wwwspringframeworkorg/schema/beans" xmlns:xsi="http://wwwworg/2001/XMLSchema-instance"xmlns:context="http://wwwspringframeworkorg/schema/context" xsi:schemaLocation="http://wwwspringframeworkorg/schema/beanshttp://wwwspringframeworkorg/schema/beans/spring-beans-xsd http://wwwspringframeworkorg/schema/contexthttp://wwwspringframeworkorg/schema/context/spring-context-xsd" default-lazy-init="true"> <beanid="uploadAction"class="comcodeifactionUploadAction"/> </beans>
UploadAction.java
packagecomcodeifaction; importjavaioFile; importjavautilDate; importjavaxservlethttpHttpServletRequest; importorgspringframeworkstereotypeController; importorgspringframeworkuiModelMap; importorgspringframeworkwebbindannotationRequestMapping; importorgspringframeworkwebbindannotationRequestParam; importorgspringframeworkwebmultipartMultipartFile; @Controller publicclassUploadAction{ @RequestMapping(value="/uploaddo") publicStringupload(@RequestParam(value="file",required=false)MultipartFilefile,HttpServletRequestrequest,ModelMapmodel){ Systemoutprintln("开始"); Stringpath=requestgetSession()getServletContext()getRealPath("upload"); StringfileName=filegetOriginalFilename(); //StringfileName=newDate()getTime()+"jpg"; Systemoutprintln(path); FiletargetFile=newFile(path,fileName); if(!targetFileexists()){ targetFilemkdirs(); } //保存 try{ filetransferTo(targetFile); }catch(Exceptione){ eprintStackTrace(); } modeladdAttribute("fileUrl",requestgetContextPath()+"/upload/"+fileName); return"result"; } }
index.jsp
<%@pagepageEncoding="utf-8"%> <!DOCTYPEhtml> <html> <head> <metacharset="utf-8"> <title>上传图片</title> </head> <body> <formaction="uploaddo"method="post"enctype="multipart/form-data"> <inputtype="file"name="file"/><inputtype="submit"value="Submit"/></form> </body> </html>
WEB-INF/jsp/下的result.jsp
<%@pagepageEncoding="utf-8"%> <!DOCTYPEhtml> <html> <head> <metacharset="utf-8"> <title>上传结果</title> </head> <body> <imgalt=""src="${fileUrl}"/> </body> </html>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。