java下载(模板以及文件等)


Controller层方法

/**
* 模板下载
* @param
* @author kaima2
*/
@RequestMapping(value = "/downloadExcel", method = RequestMethod.GET)
@ResponseBody
public void downloadExcel(HttpServletRequest request,HttpServletResponse response) throws IOException {
InputStream is= this.getClass().getResourceAsStream("/excelmodel/importNewsModel.xlsx");
byte[] fileData = input2byte(is);
downloadFile(response, request, "importNewsModel.xlsx",
fileData);

}

input2byte方法
/**
* inputstream转Byte[]
* @param inStream
* @return
* @throws IOException
*/
private byte[] input2byte(InputStream inStream)
throws IOException {
ByteArrayOutputStream swapStream = new ByteArrayOutputStream();
byte[] buff = new byte[100];
int rc = 0;
while ((rc = inStream.read(buff, 0, 100)) > 0) {
swapStream.write(buff, 0, rc);
}
byte[] in2b = swapStream.toByteArray();
return in2b;
}
 
downloadFile方法
/**
* 下载
* @param response
* @param request
* @param filename
* @param fileData
* @return
*/
private boolean downloadFile(HttpServletResponse response,
HttpServletRequest request, String filename, byte[] fileData) {
try {
OutputStream myout = null;
// 检查时候获取到数据
if (fileData == null) {
response.sendError(HttpStatus.SC_NOT_FOUND);
return false;
}
try {
if(request.getHeader("User-Agent").toUpperCase().indexOf("MSIE") > 0) {
filename = new String(filename.getBytes("GBK"),"iso-8859-1");
}else{
filename = URLEncoder.encode(filename, "utf-8");
}
response.setContentType("multipart/form-data");
/*response.setContentType("multipart/form-data;charset=utf-8");*/
response.setHeader("content-disposition","attachment;filename="+filename);
// 写明要下载的文件的大小
response.setContentLength(fileData.length);
// 从response对象中得到输出流,准备下载
myout = response.getOutputStream();
myout.write(fileData);
myout.flush();
} catch (Exception e) {
} finally {
if (myout != null) {
try {
myout.close();
} catch (Exception e) {
}
}
}
} catch (IOException e) {
return false;
}
return true;
}







免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM