思路:先生成在服务上,再去下载。不要生成文件和下载文件放在一起,这样不好控制提示。
//下载
function exportExcel() {var mask = new Ext.LoadMask(Ext.getBody(), {
region : 'center',
msg : "下载文件中..."
});
mask.show();
Ext.Ajax.request({
url:APPBASE + '/finance/exportExcelUnitLoanOrganization.do?method=exportExcelUnitLoanOrganization',//这个文件返回的是文件是否生成成功的信息,如{success:true,url:/upload/1.pdf}
success:function(response){
mask.hide();
var response = Ext.decode(response.responseText);
if(response.success)
{
// window.open(response.url);//生成完文件后,将返回信息中的文件地址在新窗口打开。
window.document.location = APPBASE + '/finance/downloadExecl.do?method=downloadExecl&title=文件名&tempFile=' + response.tempFile;
} else{
Ext.MessageBox.show({
title : '提示',
msg : result.msg,
buttons : Ext.MessageBox.OK,
icon : Ext.MessageBox.WARNING,
maxWidth : 500,
minWidth : 200
});
}
},
failure:function(){
mask.hide();
//错误处理
Ext.MessageBox.show({
title : '提示',
msg : result.msg,
buttons : Ext.MessageBox.OK,
icon : Ext.MessageBox.ERROR,
maxWidth : 500,
minWidth : 200
});
}
});
}