【发布时间】:2015-02-16 11:13:27
【问题描述】:
我正在使用 ajax 调用一个 php 文件,并将我想要写入 Excel 文件的数据传递。我不想在服务器上保存 Excel 文件,但想使用 $objWriter->save('php://output'); (PHPExcel 的一部分)在浏览器中打开它。
如果我将 ajax 脚本调用复制到我的浏览器(在我的 Web 应用程序之外),浏览器会创建该文件,并且浏览器会为用户提供打开/保存它的选项。
但是...当我在我的 Web 应用程序中通过 ajax 调用运行它时,什么也没有出现。
我看过很多帖子,人们有类似的问题,但它们与我想要做的并不完全相符。大多数似乎实际上是在服务器上创建文件,然后将文件名作为结果返回给 ajax 调用,然后打开该文件。因为我没有在服务器上创建文件,所以这对我不起作用。
有没有办法用 ajax、php 和 PHPExcel 来完成这个任务?有没有办法在 $objWriter->save('php://output') 语句中打开文件?
【问题讨论】:
-
如果您发布您正在使用的(相关)代码可能会有所帮助。
-
如果您想通过 Ajax 执行此操作,您的 Ajax 调用必须处理流式二进制响应;简单地使用下载链接要容易得多
-
通过使用链接并不意味着我必须先将文件存储在服务器上,然后让该人单击链接以获取文件(除非我误解了您的意思) ?由于可能有多个人在使用这个应用程序并创建了相当多的 Excel 文件,因此我不想在服务器上实际创建这些文件——否则我必须执行某种清除程序来清理文件。