ExtJS 文件下载问题

baihui212 2010-05-17 11:51:33
在做的一个项目里面希望提供文件的上传于下载,下载的需求是选中GridPanel中的一行,点击下载,会弹出“另存为..”对话框供,用window.open()会提示报错,请问ExtJS的代码该怎么写。

DownloadExcelFiles = function(){
var record = grid1.getSelectionModel().getSelections();//grid1为已定义的GridPanel
if (record.length == 0) {
Ext.MessageBox.alert('系统提示信息', '请选择你要下载的文件!');
}
else
if (record.length > 1) {
Ext.MessageBox.alert('系统提示信息', '一次只能下载一个文件!')
}
else
if (record.length == 1) {
var _filename = ' ';
var _filepath = 'E:\\work\\temp\\';
_filename = _filepath + record[0].get('name');
alert(_filename);
window.open(_filename, '_blank',
'width=1,height=1,toolbar=no,menubar=no,location=no');//报错,提示“拒绝访问”
}
}

...全文
1349 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
gonglil 2012-12-25
  • 打赏
  • 举报
回复
lz问题解决了没有?我也遇到了相同的问题啊。
RainAndroid 2012-11-23
  • 打赏
  • 举报
回复
我用了这个怎么不行呀 ,struts.xml是怎么配置的,action中怎么写呀 ? 楼主!
tweij 2010-08-24
  • 打赏
  • 举报
回复
我的后台是S2SH
tweij 2010-08-24
  • 打赏
  • 举报
回复
楼主 问题解决了吗?可否分享下,我也是初学,需要Extjs提供文件下载;
baihui212 2010-05-18
  • 打赏
  • 举报
回复

DownloadExcelFiles = function() {
var records = grid1.getSelectionModel().getSelections();
if (records.length == 0) {
Ext.MessageBox.alert('系统提示信息', '请选择你要下载的文件!');
}
else
if (records.length > 1) {
Ext.MessageBox.alert('系统提示信息', '一次只能下载一个文件!');
} else {
var _filename = ' ';
var _filepath = 'E:\\work\\temp\\';
_filename = _filepath + records[0].get('name');
Ext.Ajax.request({
url: GURLBase+"/EXEC/"+GTrackID+"/"+GAppID+"?op=downloadimpfile&Format=xls&SessionId="+GMySession,
params : {
filename: _filename,
filepath: _filepath //下载路径
},
method: 'POST',
success: function (response, config) {
var obj = Ext.decode(response.responseText);
//window.location.href = obj.path;
alert(obj);
alert("filename:"+_filename);
//window.open(_url,'_self','width=1,height=1,toolbar=no,menubar=no,location=no');
},
failure: function ( result, request) {
Ext.MessageBox.alert('FAILURE', '下载操作失败!');
}
})
}
};

baihui212 2010-05-17
  • 打赏
  • 举报
回复
用Ext.window只能弹出一个窗体吧,无法下载的
tomte_1984 2010-05-17
  • 打赏
  • 举报
回复
采用Ext.window的方法
var win = new top.Ext.Window({
items : [{ html :_filename}]
});
win.show();
baihui212 2010-05-17
  • 打赏
  • 举报
回复
网上提到用ExtJS无法实现文件下载,请问下面的代码如何实现?

Ext.Ajax.request({
url:'getPath.action',
success:function(res){
var obj = Ext.decode(res.responseText);
//console.log(obj);//可以到火狐的firebug下面看看obj里面的结构
//加入getPath返回的json为{'path':'upload/abc.jpg'}
window.location.href = obj.path;//这样就可以弹出下载对话框了
}
});
xk029 2010-05-17
  • 打赏
  • 举报
回复
var _filepath = 'E:\\work\\temp\\';

这句应该写成服务端的虚拟路径
hoojo 2010-05-17
  • 打赏
  • 举报
回复

window.location.href = obj.path;//这样就可以弹出下载对话框了
跳转到一个普通的jsp或html页面,页面上提供下载地址或下载操作

87,922

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧