Я использую ExtJS для создания клиентской части для моей программы.Есть ситуация, когда я хочу отправить Ajax-запрос на сервер и получить файл ответов (двоичный файл, а не простой текстовый файл, то есть XLS или PDF).Как я могу получить этот возвращенный файл с помощью ExtJS (я имею в виду, что файл может быть загружен и сохранен для клиента)?Я не могу использовать var result = Ext.decode(response.responseText)
для получения результата, потому что ответ содержит двоичные данные и не может быть декодирован.
Вызов Ajax очень прост:
Ext.Ajax.request({
url : 'myController/exportFile',
method : 'GET',
success : function(response, opts) {
// What should I do to get the file?
},
failure : function(response, opts) {
alert('Export file failed!')
}
});
Вот мое действие сервера для возвратаfile:
public void sendFile(HttpServletResponse response, String filePath) {
def file = new File(filePath);
response.setContentType("application/octet-stream");
response.setHeader("Content-disposition", "attachment;filename=${file.getName()}");
response.outputStream << file.newInputStream();
}
Спасибо большое!