response.setContentType(contentType);//不同的文件类型,contentType不一样,比如图片一般是image/jpeg、image/png等
package cn.hanquan.controller;
import java.io.File;
import java.io.IOException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.io.FileUtils;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class DemoDownload {
@RequestMapping("download")
public void download(String filename, HttpServletResponse res, HttpServletRequest req) throws IOException {
// 设置响应流中文件进行下载
// attachment是以附件的形式下载,inline是浏览器打开
// bbb.txt是下载时显示的文件名
// res.setHeader("Content-Disposition", "attachment;filename=bbb.txt"); // 下载
res.setHeader("Content-Disposition", "inline;filename=bbb.txt"); // 浏览器打开
// 把二进制流放入到响应体中
ServletOutputStream os = res.getOutputStream();
System.out.println("here download");
String path = req.getServletContext().getRealPath("files");
System.out.println("path is: " + path);
System.out.println("fileName is: " + filename);
File file = new File(path, filename);
byte[] bytes = FileUtils.readFileToByteArray(file);
os.write(bytes);
os.flush();
os.close();
}
}