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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用PHP通过ajax在特定服务器*文件夹上保存文件。不通过浏览器下载相关的知识,希望对你有一定的参考价值。

我正在使用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文件它不起作用。

答案

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

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

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

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

以上是关于如何使用PHP通过ajax在特定服务器*文件夹上保存文件。不通过浏览器下载的主要内容,如果未能解决你的问题,请参考以下文章

如何获取特定的 PHP 变量以通过 AJAX 调用发送?

如何使用 jquery ajax 调用来调用 php 函数? [复制]

通过 AJAX 获取在您的服务器上调用 PHP 文件的域

如何通过ajax请求将字符串与文件一起发送到php文件?

如何使用ajax将输入文件数据值发送到php页面

如何防止使用php自动多次点击网站?