在Ext Js中另存为对话框

时间:2018-10-22 12:52:02

标签: javascript extjs6-modern


我想问一下Ext Js Modern中是否有一个“ 另存为”对话框?因此,我可以将网页中的对象保存到本地文件中。

2 个答案:

答案 0 :(得分:0)

一种解决方案(取决于Web浏览器,并且并非所有浏览器都支持!)正在使用Mozilla API(文件和BLOB),如下所示: https://developer.mozilla.org/en-US/docs/Web/API/File/Filehttps://developer.mozilla.org/en-US/docs/Web/API/Blob

答案 1 :(得分:0)

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

  1. 在ViewController中,您触发了一个事件,例如“ downloadFile”
  2. 在主控制器中,您捕获事件并执行函数“ downloadFile”并以相同的名称调用函数
  3. AjaxController(Ext.app.Controller)您调用函数doStandardSubmit

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

  4. 在portlet的后端(Java)中,您编写了endPOint方法:

    @EndpointMethod(编码=假) 公共无效下载(DataAccessor dataAccessor,AuthenticationGenerationConfiguration配置, @RequestKey字符串param1,ResourceResponse响应)引发IOException {

    OutputStream outputStream = response.getPortletOutputStream(); 尝试{

                // Adjusting content type
                response.setContentType("text/plain");
                response.setProperty("Content-Disposition", "attachment; filename=\"" + FILENAME + "\"");
                    outputStream.flush();
            } finally {
                outputStream.close();
            }
        }