2012-06-28 31 views
0

我需要使用窗口中的按鈕從網格下載文件。爲了發送過濾器參數,我使用store.load,但它不下載文件,但它試圖讀取它。有沒有解決方法?使用store.load下載文件(Excel文件)? (ExtJS 4.1)

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

startExel是一個額外的參數,以表明我想下載一個Excel文件。

返回文件時
+0

是由腳本生成的excel文件還是服務器上的實際文件?您可以圍繞網格單元格中的數據包裝一個標籤,並將href指向文件或腳本 – gunnx

+0

@gunnx,使用從extjs發送的參數在服務器端生成Excel文件。 – ilhan

+0

爲什麼你使用store.load你可以不使用Ext.ajax而是傳遞所需的參數。 – gunnx

回答

0

在服務器端包含下面的頭:

Content-disposition: attachment 
+0

我使用http://phpexcel.codeplex.com/我認爲它與請求本身有關。 – ilhan

+0

它有'Content-Disposition:attachment; filename =「01simple.xlsx」' – ilhan

1

我不認爲它可以通過簡單的配置變化來做到這一點。因爲商店通過AJAX調用加載。

這裏有一個主意,你:

  1. 返回JSON對象與文件下載網址爲響應存儲負載請求。不是實際的文件內容。

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

  2. 在客戶機側處理,則存儲負載故障識別和提取返回的URL。您可能必須稍微調整讀取器配置。

  3. 致電window.open(url)啓動文件下載。

查看此SO的question