@WebServlet("/PopDownload")
public class PopDownload extends HttpServlet {
private static final long serialVersionUID = 1L;
public PopDownload() {
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String path = this.getServletContext().getRealPath("/")+"img/funny.jpg";
File file = new File(path);
if(file.exists()){
//读取图片
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
BufferedImage bufferedImage = ImageIO.read(file);
ImageIO.write(bufferedImage, "jpg", byteArrayOutputStream);
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet("图片");
HSSFPatriarch patriarch = sheet.createDrawingPatriarch();
HSSFClientAnchor hssfClientAnchor = new HSSFClientAnchor(0, 0, 0, 0, (short)1, 1, (short)4, 8);
patriarch.createPicture(hssfClientAnchor, wb.addPicture(byteArrayOutputStream.toByteArray(), HSSFWorkbook.PICTURE_TYPE_JPEG));
byteArrayOutputStream.close();
//设置请求头
String returnName = "测试.xls";
response.setContentType("application/octet-stream;charset=utf-8");
returnName = response.encodeURL(new String(returnName.getBytes(),"iso8859-1"));
response.addHeader("Content-Disposition", "attachment;filename=" + returnName);
ByteArrayOutputStream byteArrayOutputStream2 = new ByteArrayOutputStream();
wb.write(byteArrayOutputStream2);
response.setContentLength(byteArrayOutputStream2.size());
//输出到浏览器
ServletOutputStream outputstream = response.getOutputStream();
byteArrayOutputStream2.writeTo(outputstream);
byteArrayOutputStream2.close();
outputstream.flush();
wb.close();
}else{
System.out.println("文件没有找到");
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
项目名:popDownload
浏览器访问路径:localhost:8080/popDownload/PopDownload