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