Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File 在ext js中触发动态下载_File_Extjs_Download - Fatal编程技术网

File 在ext js中触发动态下载

File 在ext js中触发动态下载,file,extjs,download,File,Extjs,Download,我在ExtJS中有一个带有“下载”按钮的网格,因此用户可以下载该网格的文件表示,当按下按钮时,我将动态创建该网格 但我不知道通过EXT-JS中的什么机制可以触发此下载。不确定EXT-JS是否有一些帮助函数,或者您是否只使用纯javascript(在这种情况下,如何在EXT-JS中深入到内部实现它?) 从按钮处理函数触发此下载的最佳方法是什么 window.location = url_of_file 虽然我记得ExtJS中存在一些奇怪行为的问题,但我们通常会在一个新窗口/选项卡中打开url:

我在ExtJS中有一个带有“下载”按钮的网格,因此用户可以下载该网格的文件表示,当按下按钮时,我将动态创建该网格

但我不知道通过EXT-JS中的什么机制可以触发此下载。不确定EXT-JS是否有一些帮助函数,或者您是否只使用纯javascript(在这种情况下,如何在EXT-JS中深入到内部实现它?)

从按钮处理函数触发此下载的最佳方法是什么

window.location = url_of_file
虽然我记得ExtJS中存在一些奇怪行为的问题,但我们通常会在一个新窗口/选项卡中打开url:

window.open(url_of_file);

在ExtJS中,Button类有一个href属性,可以将该属性设置为触发您试图获取的资源的HTTP GET

编辑:在澄清您试图做的事情之后,这里是您需要的: URL上的数据:

这个技巧让你的浏览器认为它需要下载一个文件。您必须在客户端生成数据。有一些插件是这样工作的:


另一个插件使用另一种方法:

为什么不能使用处理程序或服务调用来发布网格的存储数据并用这些数据填充文件?我相信您正在尝试实现类似“导出到Excel”类型的功能。我可以将文件的格式放在一起。我缺少的是如何引导浏览器从EXT-JS框架中下载javascript程序生成的字符串作为文件。是的,导出到Excel是正确的——实际上我的最终目的地是Word。使用word的XML格式和一个模板,我认为应该可以,我只是不清楚开始下载的机制。不幸的是,这是这个技巧的一部分——我正在从网格中的数据动态生成文件,因此本身没有文件或资源可获取。它将在客户端生成。您引导我找到了答案,谢谢!我只需要调用window.location.href=uri,其中uri是一个字符串,包含上面维基百科文章中的文档加标题。仅仅是这个调用就导致(一个现代的)浏览器下载。不幸的是,这是这个调用的一部分技巧——我正在从网格中的数据动态生成文件,因此本身没有文件或资源可获取。它将在客户端生成。如何使用Javascript生成文件?我将逐步遍历网格,获取我需要的信息并格式化它。但我并不担心这一部分——假设我从一个字符串生成一个文本文件。在按钮处理程序中,如何引导浏览器将其作为文件下载?好吧,除非使用HTML5 filewriter,否则无法使用javascript生成文件。这会创建一个临时的“假”url。您还可以考虑在桌面应用程序中运行ExtJS应用程序,如Firefox Web应用程序,或使用Flash,或使用java,或使用ActiveX控件