7 8

使用spring mvc上传文件的简单教程

本文概要:使用spring mvc进行简单的文件上传。

1、首先在spring中配置一个bean
[code=xml]
class=“org.springframework.web.multipart.commons.CommonsMultipartResolver”>

[/code]
注意:这个bean的id一定要是multipartResolver,不然会出错

本文概要:使用spring mvc进行简单的文件上传。

1、首先在spring中配置一个bean

[xml] <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="maxUploadSize" value="100000" /> </bean> [/xml]

注意:这个bean的id一定要是multipartResolver,不然会出错

2、写UploadFile.java

[java] package zzp.bean; public class UploadFile { private byte[] file; private String message; public byte[] getFile() { return file; } public void setFile(byte[] file) { this.file = file; } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } [/java]

3、写上传控件

[java] package zzp.controller; import java.io.File; import java.util.HashMap; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.util.FileCopyUtils; import org.springframework.validation.BindException; import org.springframework.web.bind.ServletRequestDataBinder; import org.springframework.web.multipart.MultipartHttpServletRequest; import org.springframework.web.multipart.commons.CommonsMultipartFile; import org.springframework.web.multipart.support.ByteArrayMultipartFileEditor; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.SimpleFormController; import zzp.bean.UploadFile; public class UploadController extends SimpleFormController { @Override protected ModelAndView onSubmit(HttpServletRequest request, HttpServletResponse response, Object command, BindException errors) throws Exception { UploadFile bean=(UploadFile)command; byte[] bytes=bean.getFile();<br/>
MultipartHttpServletRequest multireq=(MultipartHttpServletRequest)request; CommonsMultipartFile file=(CommonsMultipartFile) multireq.getFile("file"); File save=new File("g:/upload/"+file.getOriginalFilename()); FileCopyUtils.copy(bytes, save); Map map=new HashMap(); map.put("status", bean.getMessage()); return new ModelAndView(getSuccessView(),map); } @Override protected void initBinder(HttpServletRequest request, ServletRequestDataBinder binder) throws Exception { binder.registerCustomEditor(byte[].class, new ByteArrayMultipartFileEditor()); } } [/java]

4、配置spring

[xml] <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property name="mappings"> <props>
<prop key="upload.htm">upload</prop> </props>
</property> </bean> <bean id="upload" class="zzp.controller.UploadController"> <property name="commandClass" value="zzp.bean.UploadFile" />
<property name="formView" value="upload" />
<property name="successView" value="uploadok" /> </bean> [/xml]

5、编写jsp页面 upload.jsp

[html] <form action="upload.htm" method="post" enctype="multipart/form-data"> <input type="file" name="file"/> <input type="text" name="message"/> <button type="submit">上传</button> </form> [/html]

uploadok.jsp

[java]${status}[/java]

访问http://localhost:8080/springhibernate/upload.htm即可上传文件