后台java,前台extjs文件下载
前台:
function _loadFilesFjContent() {
var records = Ext.getCmp('filesFjPanel').getSelectionModel().getSelection();
if (records.length == 0) {
Ext.MessageBox.alert('操作信息', '请选择附件');
return;
}
if (records.length > 1) {
Ext.MessageBox.alert('操作信息', '请只选择一个附件');
return;
}
window.open("loadFilesFjContent.do?A_A_ID'), "_blank", "width=40,height=30,resizable=yes,scrollbars=yes");
}
后台:
控制层:
@RequestMapping(value = "loadFilesFjContent")
public void loadFilesFjContent(String A_ID, HttpServletRequest request, HttpServletResponse response, HttpSession session) {
try {
Map<String, Object> operator = getOperator(session);
Map<String, Object> filesFj = filesFjService.loadFilesFj(A_ID, operator);
InputStream inputStream = filesFjService.loadContent(A_ID, operator);
response.reset();
String fileName = URLEncoder.encode((String) filesFj.get("FNAME"), "UTF-8");
response.setHeader("Content-Disposition", "attachment; filename=" + fileName);
ServletOutputStream out = response.getOutputStream();
byte[] content = new byte[65535];
int length = 0;
if (inputStream != null) {
while ((length = inputStream.read(content)) != -1) {
out.write(content, 0, length);
}
}
out.flush();
out.close();
}
catch (Exception e) {
logger.error(e.getMessage(), e);
}
}
服务层:
@Override
public InputStream loadContent(String A_ID, Map<String, Object> operator) {
String sql = "select FCONTENT from FILES_FJ where A_ID = ?";
return oaJdbcTemplate.queryForObject(sql, new Object[] { A_ID }, new ParameterizedRowMapper<InputStream>() {
public InputStream mapRow(ResultSet rs, int rowNum) throws SQLException {
return rs.getBinaryStream(1);
}
});
}
- 上一篇 »linux使用wget下载jdk并配置
- 下一篇 »JAVA根据下载地址获取文件的Base64