上次使用springMVC实现了文件上传功能,本次使用springMVC实现文件下载功能。相关配置文件和jar包参考文件上传。
1.代码实现
package com.bb.controller;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
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;
@Controller
public class UserController {
//下载文件,方式一
@RequestMapping("/download")
public void downloadFile(HttpServletRequest request, HttpServletResponse response) throws IOException{
System.out.println("--download--");
File file = new File("d:/files/timg.jpg");
//设置响应头和客户端保存文件名
response.setCharacterEncoding("utf-8");
response.setContentType("multipart/form-data");
response.setHeader("Content-Disposition", "attachment;fileName=" + file.getName());
ServletOutputStream out = response.getOutputStream();
InputStream in = new FileInputStream(file);
byte[] bs = new byte[1024];
int num = 0;
while((num = in.read(bs)) != -1){
out.write(bs, 0, num);
}
in.close();
out.flush();
out.close();
}
//方式二
@RequestMapping("/download2")
public ResponseEntity<byte[]> download(HttpServletRequest request) throws IOException {
// 需要下载的文件
File file = new File("d:/tools/t1.jpg");
byte[] body = null;
InputStream is = new FileInputStream(file);
body = new byte[is.available()];
is.read(body);
HttpHeaders headers = new HttpHeaders();
headers.add("Content-Disposition", "attchement;filename=" + file.getName());
HttpStatus statusCode = HttpStatus.OK;
ResponseEntity<byte[]> entity = new ResponseEntity<byte[]>(body, headers, statusCode);
is.close();
return entity;
}
}
2.jps页面
3.运行结果