package com.web.controller;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
@Controller
@RequestMapping("/web")
public class ExportFileController {
@RequestMapping("/show")
public ModelAndView show(){
System.out.println("show()...");
ModelAndView model=new ModelAndView();
model.setViewName("export");
return model;
}
@RequestMapping("/file")
public void exportFile(HttpServletRequest request,HttpServletResponse response){
String fileName="batch_fund_template.xls";
exportTemplate(request,response,fileName);
}
public void exportTemplate(HttpServletRequest request,HttpServletResponse response,String fileName){
response.setContentType("application/vnd.ms-excel");
String nowPath=request.getSession().getServletContext().getRealPath("/")+"/"+"WEB-INF"+"/"+"template"+"/"+fileName;
File file=new File(nowPath);
//清空response
response.reset();
OutputStream toClient=null;
try {
//以流的形式下载文件
InputStream fis=new BufferedInputStream(new FileInputStream(nowPath));
byte[] buffer=new byte[fis.available()];
fis.read(buffer);
fis.close();
toClient=new BufferedOutputStream(response.getOutputStream());
toClient.write(buffer);
toClient.flush();
toClient.close();
} catch (Exception e) {
throw new RuntimeException("导出错误");
}finally{
if(toClient!=null){
try {
toClient.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}