使用store.load下载文件(Excel文件)? (ExtJS 4.1)

时间:2012-06-28 08:24:17

标签: javascript ajax extjs extjs4 extjs4.1

我需要使用窗口中的按钮从网格下载文件。为了发送过滤器参数,我使用store.load,但它不下载文件,但它试图读取它。有没有解决方案?

store.load({
 params: {
  startExel: parseInt(Ext.getCmp('startE').getValue())
 }
});

startExel是一个额外的参数,用于表示我要下载Excel文件。

2 个答案:

答案 0 :(得分:1)

我认为通过简单的配置更改可以做到这一点。因为商店是通过AJAX调用加载的。

以下是您的想法:

  1. 返回带有文件下载URL的JSON对象作为对存储加载请求的响应。不是实际的文件内容。

    { success = false, url='...'}

  2. 在客户端处理存储加载失败,然后识别并提取返回的URL。您可能需要稍微调整一下阅读器配置。

  3. 致电window.open(url)以启动文件下载。

  4. 从SO。

    中查看此question

答案 1 :(得分:0)

在返回文件时在服务器端包含以下标题:

Content-disposition: attachment