如何使用PHP槽ajax将文件保存在特定的服务器*文件夹中。无法通过浏览器下载

时间:2019-02-12 02:13:22

标签: javascript php ajax phpexcel

我正在使用PHPExcel生成一个excel文件,我需要通过调用我的PHP文件将其保存在特定的 服务器 文件夹 / em> 和ajax(以避免打开额外的窗口)。

我发现有this个帖子,第二个答案与我需要的东西很接近,但是那是通过浏览器下载文件的,我不想要那个。 我只想将.xls文件保存在服务器的特定文件夹中, 不在我的计算机中

这就是我所拥有的:

PHP

$objWriter = new PHPExcel_Writer_Excel5($objPHPExcel);
$objWriter->save('../pdf-totext/'.$_POST["folder"].'/'.$_POST["filename"]); //save the file here

JS

 $.ajax({
  type:'POST',
  url:'php/libs/PHPExcel-1.8/F29.php',
  data: {folder:folder,filename:filename}
});

是否可以保存PHPExcel生成的.xls文件,通过AJAX调用我的PHP文件

编辑

我对服务器端和客户端的事情都很好,只是我想通过ajax调用我的PHP文件,因此我的PHP文件将.xls保存在服务器文件夹中。

编辑2

如果我移动到另一个这样的窗口(在PHP文件中使用GET而不是POST),它将起作用:

window.open('php/libs/PHPExcel-1.8/F29.php?folder='+folder+'&filename='+filename,'_blank');

但是如果我通过AJAX调用PHP文件不起作用,那么

1 个答案:

答案 0 :(得分:1)

它是PHP Excel ... PHP不在客户端上运行,而是在服务器上运行-因此默认情况下它将文件保存到服务器... AJAX用于从javascript发送消息(客户端浏览器)到服务器(由PHP代码接收/处理),然后再接收数据。

您使用PHP编写PHPExcel代码,因此您已经在PHP(网络服务器)端,因此不需要javascript / AJAX-除非您希望允许用户单击按钮并要求将PHPExcel生成的文件从服务器下载到客户端。

顺便说一句,PHP无法访问本地文件系统,因此您无法告诉Web服务器将文件保存在本地计算机上的位置。 PHP将文件保存到Web服务器上。

但是,如果您的Web服务器是本地服务器(例如xamppmamp或类似服务器),那就是另一回事了。让我们知道那是您在做什么。 (您仍然不会使用AJAX保存文件-但由于Web服务器位于本地驱动器上,因此PHP可以访问本地驱动器)