上传
步骤1,添加需要的common-fileupload,common-io包
步骤2,创建一个上传文件的页面
<form action="upload" method="post" enctype="multipart/form-data" >
<input type="file" name="uploadFile" />
<input type="submit" value="上传" />
</form>
步骤3,完成上传的Handler步骤4,设置文件上传解析器
@RequestMapping("/upload")
public String upload(MultipartFile uploadFile,HttpSession session,Model model) throws Exception, IOException{
System.err.println("开始上传");
//保存路径
String savePath = session.getServletContext().getRealPath("/image/");
//获取文件姓名
String filename = uploadFile.getOriginalFilename();
if(savePath!=null){
File file = new File(savePath);
//判断目录是否存在
if(!file.exists()){
//创建目录
file.mkdirs();
}
}
uploadFile.transferTo(new File(savePath,filename));
model.addAttribute("url","image/"+filename);
System.out.println("上传完成");
return "uploadfile";
}
步骤4,设置文件上传解析器
<!-- 开启注解 -->
<mvc:annotation-driven/>
<!-- 注解扫描包 -->
<context:component-scan base-package="com.mohan.upload"/>
<!-- 配置上传文件解析器 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver" >
<property name="maxUploadSize">
<value>5242880</value>
</property>
</bean>
提示:如果web.xml 中<url-pattern>/</url-pattern> 配置用的是/的话 是不支持静态文件的 需要在 springmvc配置
<!-- 设置静态访问资源 -->
<mvc:resources location="/image/" mapping="/image/**"/>
下载
@RequestMapping("/download")
public ResponseEntity<byte[]> download() throws IOException{
//文件的绝对路径
String path ="D:/javaWorkSpace/.metadata/.me_tcat7/webapps/SpringMVC/image/MVC.jpg";
//创建一个文件下载对象
File downloadFile = new File(path);
//设置下载属性
HttpHeaders headers = new HttpHeaders();
//设置处理内容的数据形式
headers.setContentDispositionFormData("attachment","mohan.jpg");
//以流的形式返回
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
//下载
return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(downloadFile),headers,HttpStatus.CREATED);
}
以上形式为静态上传下载 使用只需改为实体类参数。