Springmvc07-文件的上传和下载
1. 多文件的上传(客户端上传至服务端)
<?xml version="1.0" encoding="UTF-8"?>
< beans xmlns = " http://www.springframework.org/schema/beans"
xmlns: xsi= " http://www.w3.org/2001/XMLSchema-instance"
xmlns: context= " http://www.springframework.org/schema/context"
xmlns: mvc= " http://www.springframework.org/schema/mvc"
xmlns: tx= " http://www.springframework.org/schema/tx"
xmlns: aop= " http://www.springframework.org/schema/aop"
xsi: schemaLocation= "
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd" >
< context: component-scan
base-package = " com.caorui.handlers" > </ context: component-scan>
< mvc: annotation-driven />
< bean
class = " org.springframework.web.servlet.view.InternalResourceViewResolver" >
< property name = " prefix" value = " /jsp/" > </ property>
< property name = " suffix" value = " .jsp" > </ property>
</ bean>
< bean id = " multipartResolver" class = " org.springframework.web.multipart.commons.CommonsMultipartResolver" >
< property name = " defaultEncoding" value = " utf-8" > </ property>
</ bean>
< mvc: resources location = " /images/" mapping = " /images/**" > </ mvc: resources>
</ beans>
< form action = " springmvc/fileUpload" method = " post" enctype = " multipart/form-data" >
< input type = " file" name = " imgs" > < br>
< input type = " file" name = " imgs" > < br>
< input type = " submit" name = " 上传" >
</ form>
package com. caorui. handlers;
import java. io. File;
import java. io. IOException;
import javax. servlet. http. HttpSession;
import org. springframework. stereotype. Controller;
import org. springframework. web. bind. annotation. RequestMapping;
import org. springframework. web. bind. annotation. RequestParam;
import org. springframework. web. multipart. MultipartFile;
@Controller
@RequestMapping ( "/springmvc" )
public class MyController {
@RequestMapping ( "/fileUpload" )
public String fileUpload ( @RequestParam MultipartFile[ ] imgs, HttpSession session) {
String path = session. getServletContext ( ) . getRealPath ( "/" ) ;
System. out. println ( path) ;
for ( MultipartFile img : imgs) {
String fileName = img. getOriginalFilename ( ) ;
File file = new File ( path, fileName) ;
try {
img. transferTo ( file) ;
} catch ( IllegalStateException e) {
e. printStackTrace ( ) ;
} catch ( IOException e) {
e. printStackTrace ( ) ;
}
}
return "welcome" ;
}
}
2. 多文件的下载(客户端从服务端下载)
< % @ page language= "java" contentType= "text/html; charset=UTF-8"
pageEncoding= "UTF-8" % >
< ! DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd" >
< html>
< head>
< meta http- equiv= "Content-Type" content= "text/html; charset=UTF-8" >
< title> Insert title here< / title>
< / head>
< body>
< a href= "${pageContext.request.contextPath}/springmvc/fileDownload" > 点击下载!< / a>
< / body>
< / html>
package com. caorui. handlers;
import java. io. File;
import java. io. FileInputStream;
import java. io. FileNotFoundException;
import java. io. IOException;
import javax. servlet. http. HttpSession;
import org. springframework. http. HttpHeaders;
import org. springframework. http. HttpStatus;
import org. springframework. http. ResponseEntity;
import org. springframework. stereotype. Controller;
import org. springframework. web. bind. annotation. RequestMapping;
import org. springframework. web. bind. annotation. RequestParam;
import org. springframework. web. multipart. MultipartFile;
@Controller
@RequestMapping ( "/springmvc" )
public class MyController {
@RequestMapping ( "/fileDownload" )
public ResponseEntity< byte [ ] > fileDownload ( ) throws IOException{
File file = new File ( "d:/美女.png" ) ;
FileInputStream is = new FileInputStream ( file) ;
byte [ ] body = new byte [ is. available ( ) ] ;
is. read ( body) ;
String name = file. getName ( ) ;
String downLoadFileName = new String ( name. getBytes ( "utf-8" ) , "ISO-8859-1" ) ;
HttpHeaders httpHeaders = new HttpHeaders ( ) ;
httpHeaders. add ( "Content-Disposition" , "attachment;filename=" + downLoadFileName) ;
HttpStatus status = HttpStatus. OK;
ResponseEntity< byte [ ] > responseEntity = new ResponseEntity < > ( body, httpHeaders, status) ;
return responseEntity;
}
}