spring MVC 上传时,需要作如下配置
1,在控制器XML文件中配置如下节点:
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="50000000" />
<property name="defaultEncoding" value="utf-8" />
</bean>
2,在控制器的类中增加下方法:
protected void initBinder(HttpServletRequest request, ServletRequestDataBinder binder)
throws ServletException
{
binder.registerCustomEditor(byte[].class, new ByteArrayMultipartFileEditor());
}
3,在页面的form标签中添加属性:enctype="multipart/form-data"
此属性在所有封装好的框架中使用<input type="file" name="filePath" id="filePath"/>上传时都必须添加,
如果不添加会出现ClassCastException
如果只是通过找文件路径实例文件再获得文件流的方式,则可以不用添加
4,在上传的方法中,通过
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
MultipartFile excelMultiFile = multipartRequest.getFile("filePath");
来获得请求中的文件(无需得到文件路径再实例文件),然后得到流
BufferedReader br=new BufferedReader(new InputStreamReader(excelMultiFile.getInputStream()));
5,上传要用的JAR包:commons-io-1.3.1.jar,commons-fileupload-1.2.jar等