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

1、首先在spring中配置一个bean
[code=xml]
<bean id="multipartResolver"
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即可上传文件