用于struts2下载
private InputStream excelStream;
private String excelFileName;
/**
* Struts下载 */
@Action(value = "downloadTemplate", results = { @Result(name = "success", type = "stream", params = {
"contentType", "application/vnd.ms-excel", "inputName", "excelStream", "bufferSize", "1024",
"contentDisposition", "attachment;filename=${excelFileName}" }) })
public String downloadTemplate() {
if (log.isDebugEnabled()) {
log.debug("downloadTemplate() =====>> start ");
}
String rootPath = ServletActionContext.getServletContext().getRealPath("/");
String templatePosition = rootPath + "/template/相关的上传模板.xls";
Map<String, Object> leaveStuInfoTemplateMap = examApplyStuInfoUploadServic.downloadTemplate(templatePosition);
excelStream = (InputStream) leaveStuInfoTemplateMap.get("stream");
excelFileName = (String) leaveStuInfoTemplateMap.get("excelName") + ".xls";
if (log.isDebugEnabled()) {
log.debug("downloadTemplate() <<===== end ");
}
return SUCCESS;
}
/*
* 下载excel模板的service中的方法
*/
@Override
public Map<String, Object> downloadTemplate(String templatePosition) {
if (log.isDebugEnabled()) {
log.debug(" downloadTemplate(String templatePosition) ====>> start ");
}
Map<String, Object> returnMap = new HashMap<String, Object>();
InputStream is = null;
ByteArrayInputStream bis = null;
try {
is = new FileInputStream(templatePosition);
HSSFWorkbook wb = new HSSFWorkbook(is);
ByteArrayOutputStream os = new ByteArrayOutputStream();
try {
wb.write(os);
} catch (IOException e) {
e.printStackTrace();
}
byte[] content = os.toByteArray();
bis = new ByteArrayInputStream(content);
returnMap.put("stream", bis);
returnMap.put("excelName", new String("相关模板上传模板".getBytes(),
"ISO8859-1"));
if (log.isDebugEnabled()) {
log.debug(" downloadTemplate(String templatePosition) <<==== end ");
}
return returnMap;
} catch (Exception e) {
log.error("异常信息:" + e.getMessage());
if (log.isDebugEnabled()) {
log.debug(" downloadTemplate(String templatePosition) <<==== end ");
}
}
return null;
}