文件下載,是不可以直接通過Ext.Ajax.Request來實現的。一般的,可以通過創建一個隱藏的form表單來實現。具體代碼以及代碼注釋如下:
if (!Ext.fly('downForm')){ //如果不存在一個id為"downForm"的form表單,則執行下面的操作
//下面代碼是在創建一個表單以及添加相應的一些屬性
var downForm = document.createElement('form'); //創建一個form表單
downForm .id = 'downForm'; //該表單的id為downForm
downForm .name = 'downForm'; //該表單的name屬性為downForm
downForm .className = 'x-hidden'; //該表單為隱藏的
downForm .action = 'download.action'; //表單的提交地址
downForm .method = 'post'; //表單的提交方法
//下面代碼是下載文件需要傳遞附加參數時才寫的
//其原理很簡單,就是添加input,然后再添加name和value即可
//其中,name屬性時參數名稱,value是參數的值
var data = document.createElement('input'); //創建一個input節點
data.type = 'hidden'; //隱藏域
data.name = 'data'; //需要傳遞給后台的參數名
data.value = "666"; //參數值
downForm.appendChild(data); //將input節點追加到form表單里面
document.body.appendChild(downForm ); //講form表單追加到body里面
}
Ext.fly('downForm').dom.submit(); //調用form表單的submit方法,提交表單,從而開始下載文件
//因為表單已經提交了,文件也開始下載了,所以過河拆橋,把表單移除掉
//如果存在id為downForm的表單,則將它移除掉
if (Ext.fly('downForm')){
document.body.removeChild(downForm );
}

