文件下载
这个适用各种类型的文件下载
java代码
//导出
@RequestMapping("/exportDatabaseView")
@ResponseBody
public void exportDatabaseView (HttpServletRequest request, HttpServletResponse response){
try{
String xmlContent = "";
List<DatabaseView> list = _databaseViewService.queryAllDatabaseView ();
if(CollectionUtils.isNotEmpty (list)){
for(DatabaseView databaseView : list){
String template = databaseView.getViewTemplate ();
String viewDesc = databaseView.getViewDesc ();
xmlContent = xmlContent + "--" + viewDesc + "\r\n" + template + ";" + "\r\n";
}
}
List<Organ> queryOrgan = _databaseViewService.queryOrgan ();
String org_code = null;
String org_name = null;
if(CollectionUtils.isNotEmpty (queryOrgan)){
Organ organ = queryOrgan.get (0);
org_code = organ.getOrg_code ();
org_name = organ.getOrg_name ();
}
/*Map map = new HashMap <String, String> ();
map.put ("orgCode", org_code);
map.put ("orgName", org_name);
xmlContent = DynamicSQLUtil.getStaticSql (xmlContent, map);*/
if(xmlContent.indexOf ("#orgCode#")!=-1){
xmlContent = xmlContent.replaceAll ("#orgCode#", org_code);
}
if(xmlContent.indexOf ("#orgName#")!=-1){
xmlContent = xmlContent.replaceAll ("#orgName#", org_name);
}
String title = DateUtil.getNowDate () + "_视图脚本";//定义文件名
String fileName = title + ".sql";//定义文件格式
int bufferSize = 65000;
//xmlContent就是文件的内容
byte[] bytes = xmlContent.getBytes ("utf-8");
ByteArrayInputStream inputstream = new ByteArrayInputStream (bytes);
byte abyte0[] = new byte[bufferSize];
response.setContentType ("application/octet-stream; charset=utf-8");
response.setContentLength ((int) bytes.length);
response.setHeader ("Content-Disposition", "attachment;filename=" + new String (fileName.getBytes ("utf-8"), "ISO8859-1"));
ServletOutputStream out = response.getOutputStream (); response.setCharacterEncoding ("utf-8");
int sum = 0; int k = 0;
while ((k = inputstream.read (abyte0, 0, bufferSize)) > -1)
{
out.write (abyte0, 0, k);
sum += k;
}
inputstream.close ();
out.flush ();
out.close ();
}catch(Exception e){
_logger.error ("关闭流发生异常!", e);
}
}
Js请求
//导出
databaseView.expor=function(){
var param="";
var row =$('#datagrid').datagrid('getSelected');
var urlContent = contextPath + "/databaseView/exportDatabaseView.do?";
if(null == row){
$.messager.confirm("提醒", "确定导出全部视图脚本?", function(r) {
if (r) {
window.location.href= urlContent + param;
}
});
}
}