1.在applicationContext.xml里面配置以下xml
<!--文件上传配置文件-->
<bean class="org.springframework.web.multipart.commons.CommonsMultipartResolver" id="multipartResolver">
<!--请求的编码格式必须和jsp页面的pageEncoding一致-->
<property name="defaultEncoding" value="utf-8"></property>
<!--上传最大最小限制-->
<property name="maxUploadSize" value="2982887"/>
</bean>
然后

单文件上传
@RequestMapping("/upload1") //单文件上传
public String upload1(String ms, MultipartFile mufile,Model model) throws IOException {
System.out.println("=========================");
//mufile.getOriginalFilename()文件名字---------D:\jq\是要保存的目录
String path="D:\\jq\\"+mufile.getOriginalFilename();
File file=new File(path);
mufile.transferTo(file);
System.out.println(mufile.getOriginalFilename()+"-----------------------");
model.addAttribute("mufile",mufile.getOriginalFilename());
// model.addAttribute("mufile","/springmvc_file_war_exploded/img/1001704.jpg");
return "app";
}
多文件上传
@RequestMapping("/upload1") //多文件上传
public String upload1(String ms, MultipartFile[] mufile) throws IOException {
for (MultipartFile multipartFile : mufile) {
//mufile.getOriginalFilename()文件名字D:\jq\是要保存的目录
String path="D:\\jq\\"+multipartFile.getOriginalFilename();
File file=new File(path);
multipartFile.transferTo(file);
}
return null;
}
第一种文件下载
//文件下载
@RequestMapping("/dowinload")
public String dowinload(HttpServletRequest request, HttpServletResponse response) throws IOException {
//获取当前目录下的文件路径(真实开发时数据库里面读取)
String realPath=request.getServletContext().getRealPath("/up/324466.jpg");
//根据文件路径封装成FiLe
File tempFile=new File(realPath);
//根据File对象获得文件名
String fileName=tempFile.getName();
//设置响应头content-disposition--就是设置文件的打开方式,默认网页打开
//attachment:filename--为了以下载方式打开文件
//utf-8文件有中文就不会乱码
response.setHeader("content-disposition","attachment;filename="+URLEncoder.encode(fileName,"UTF-8"));
//根据文件路径封装为文件输入流
InputStream in=new FileInputStream(realPath);
int len=0;
//声明一个1kb的缓冲区
byte[]buffer=new byte[1024];
//获取输出流
OutputStream out=response.getOutputStream();
//循环读取文件一次1kb,避免内存溢出
while ((len=in.read(buffer))>0){
//往客户端写入
out.write(buffer,0,len);//将缓冲区的数据输出到客户端
}
in.close();
return null;
}
第2种
//文件下载
@RequestMapping("/download")
public ResponseEntity<byte[]> download(HttpServletResponse response,HttpServletRequest request,
@RequestParam("file") String file1) throws IOException {
String path=file1;//要下载的文件路径
File file=new File(path);
HttpHeaders headers = new HttpHeaders();
System.out.println(file.getCanonicalPath()+"---------------------------------");
//你好.xls是后缀文件名--指定了只可以上传xls表格
String fileName=new String("你好.jar".getBytes("UTF-8"),"iso-8859-1");//为了解决中文名称乱码问题
headers.setContentDispositionFormData("attachment", fileName);
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file),
headers, HttpStatus.CREATED);
}
浙公网安备 33010602011771号