Ext Js 中的另存为对话框
Save As Dialog in Ext Js
请问Ext Js Modern中是否有“另存为”对话框?所以我可以将网页中的对象保存到本地文件中。
一个解决方案(取决于 Web 浏览器,并非所有浏览器都支持!)使用 Mozilla API(文件和 BLOB),例如:
https://developer.mozilla.org/en-US/docs/Web/API/File/File 和
https://developer.mozilla.org/en-US/docs/Web/API/Blob
另一个解决方案取决于 Portlet 概念:
- 在 ViewController 你触发了一个事件 ex "downloadFile"
- 在主控制器中你捕获事件并执行一个函数"downloadFile"并调用一个函数让它同名
AjaxController(Ext.app.Controller) 你调用函数doStandardSubmit
location.href = this.url + '&operation=download¶m1=' + param1val;
在 portlet 的后端 (Java) 中编写 endPOint 方法:
@EndpointMethod(编码=假)
public void download(DataAccessor dataAccessor, AuthenticationGenerationConfiguration 配置,
@RequestKey String param1, ResourceResponse response) throws IOException {
OutputStream outputStream = response.getPortletOutputStream();
试试{
// Adjusting content type
response.setContentType("text/plain");
response.setProperty("Content-Disposition", "attachment; filename=\"" + FILENAME + "\"");
outputStream.flush();
} finally {
outputStream.close();
}
}
请问Ext Js Modern中是否有“另存为”对话框?所以我可以将网页中的对象保存到本地文件中。
一个解决方案(取决于 Web 浏览器,并非所有浏览器都支持!)使用 Mozilla API(文件和 BLOB),例如: https://developer.mozilla.org/en-US/docs/Web/API/File/File 和 https://developer.mozilla.org/en-US/docs/Web/API/Blob
另一个解决方案取决于 Portlet 概念:
- 在 ViewController 你触发了一个事件 ex "downloadFile"
- 在主控制器中你捕获事件并执行一个函数"downloadFile"并调用一个函数让它同名
AjaxController(Ext.app.Controller) 你调用函数doStandardSubmit
location.href = this.url + '&operation=download¶m1=' + param1val;
在 portlet 的后端 (Java) 中编写 endPOint 方法:
@EndpointMethod(编码=假) public void download(DataAccessor dataAccessor, AuthenticationGenerationConfiguration 配置, @RequestKey String param1, ResourceResponse response) throws IOException {
OutputStream outputStream = response.getPortletOutputStream(); 试试{
// Adjusting content type response.setContentType("text/plain"); response.setProperty("Content-Disposition", "attachment; filename=\"" + FILENAME + "\""); outputStream.flush(); } finally { outputStream.close(); } }