如何使用PHP通过ajax在特定服务器*文件夹上保存文件。不通过浏览器下载

问题描述 投票:-2回答:1

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

我发现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文件它不起作用。

javascript php ajax phpexcel
1个回答
1
投票

它是PHPExcel ... PHP不在客户端上运行,它在服务器上运行 - 所以它会默认将文件保存到服务器... AJAX用于从javascript(客户端浏览器)发送消息到服务器(由PHP代码接收/处理),并接收数据。

你用PHP编写PHPExcel代码,所以你已经在PHP(webserver)端,所以不需要javascript / AJAX - 除非你想让用户点击一个按钮并请求从下载的PHPExcel生成的文件服务器到客户端。

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

但是,如果您的网络服务器是本地的(例如xamppmamp或其他类似的),那么这是一个不同的故事。如果您正在做的话,请告诉我们。 (您仍然不会使用AJAX来保存文件 - 但PHP可以访问本地驱动器,因为Web服务器在本地驱动器上)

© www.soinside.com 2019 - 2024. All rights reserved.