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/Filehttps://developer.mozilla.org/en-US/docs/Web/API/Blob

另一个解决方案取决于 Portlet 概念:

  1. 在 ViewController 你触发了一个事件 ex "downloadFile"
  2. 在主控制器中你捕获事件并执行一个函数"downloadFile"并调用一个函数让它同名
  3. AjaxController(Ext.app.Controller) 你调用函数doStandardSubmit

    location.href = this.url + '&operation=download¶m1=' + param1val;

  4. 在 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();
            }
        }