浏览器下载数据

html 

<input id="PageContext" type="hidden" value="${pageContext.request.contextPath}" />

js 

function download_file() {
var PageContext = $("#PageContext").val();
window.location = PageContext+'/path/downloadFile';
}

 

java 

@RequestMapping("/downloadFile")
public void downloadFile(HttpServletResponse response) throws IOException {

Date currentTime = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy_MM_dd_HH_mm_ss");
String dateString = formatter.format(currentTime);

boolean csvFile = true;

try {
if(csvFIle){
//csv文件
List<String> list = new ArrayList<String>();
list.addAll();      //添加数据

//文件
String downFileName= "file"+dateString+".csv";
response.addHeader("Content-Disposition",
"attachment;filename=" + new String(downFileName.getBytes("UTF-8"), "iso-8859-1"));

response.setCharacterEncoding("GBK");

response.setContentType("application/csv;charset=GBK");

BufferedWriter bw = new BufferedWriter(response.getWriter(),10 * 1024);
// title 这里加上输出的表头
bw.write("1,1,1");
bw.newLine();

if(list.size()>0){
for(String str :list){
bw.write(str);
bw.newLine();
}

}
bw.flush();
bw.close();

}else{

//复制zip,下载
String downFileName= "file_"+dateString+".zip";

response.addHeader("Content-Disposition",
"attachment;filename=" + new String(downFileName.getBytes("UTF-8"), "iso-8859-1"));

response.setCharacterEncoding("GBK");

response.setContentType("application/zip;charset=GBK");

//文件是存储在已有文件中
String fileName ="/"+uid+"/cell_neibbetter_"+uid+".zip";
File file=new File(fileName);
if(file.exists()){

response.setContentLength((int) file.length());
FileInputStream fis = new FileInputStream(file);
BufferedInputStream buff = new BufferedInputStream(fis);
byte[] b = new byte[1024*1024];// 缓存
long k = 0;// 该值用于计算当前实际下载了多少字节
OutputStream myout = response.getOutputStream();// 从response对象中得到输出流,准备下载
// 开始循环下载
while (k < file.length()) {
int j = buff.read(b, 0, 1024);
k += j;
myout.write(b, 0, j);
}
myout.flush();
buff.close();

}

}
} catch (Exception e) {
logger.error(e.getMessage());
e.printStackTrace();
}
}

 

posted @ 2018-11-06 17:33  seeYagain  阅读(233)  评论(0编辑  收藏  举报