apache或php.ini配置

yzuktlbb  于 2021-06-20  发布在  Mysql
关注(0)|答案(0)|浏览(181)

我一直在找资料,例子,文件。。。但是我的搜索失败了,因为我没有找到任何解决问题的方法:我使用xampp在php和mysql上设计了一个网页,然后将最终版本上传到我的服务器上(这是为了执行功能测试)。我在xampp中实现了phpspreadsheet来生成xlsx,它工作正常,并在指定的本地驱动器位置创建了相应的excel文件。但是。。。。。当我把文件上传到我的服务器上时,除了生成xlsx之外,所有的工作都正常,我的意思是:excel文件没有保存到服务器上。服务器和xampp都有相同版本的php、mysql、phpspredsheet,我已经将folder的权限更改为777,以便完全访问脚本以保存生成的预期文件,但是没有生成任何文件或将其保存到php脚本中指定的位置。我试过使用一个非常简单的测试php文件,它既不保存excel文件,也不显示错误,而且所有的指令都正确执行(xlsx只是在服务器上没有生成,在windows中使用xampp工作得很好),我真的不知道是否有一个特殊的配置我错过了做,以便允许php在apache中保存文件。谢谢你的帮助。
测试1:仅在xampp中工作正常,在服务器中它不会生成错误,但不会将文件保存在任何地方。

<?php

require_once('vendor/autoload.php');

use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\IOFactory;

$spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load('template.xlsx');
$worksheet = $spreadsheet->getActiveSheet();
$worksheet->setCellValue('A1', 'Test text ok!!!');

$writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, "Xlsx");

$writer->save("test.xlsx");

?>

测试2:在服务器和xampp上运行良好,但生成excel到internetexplorer输出窗口,而不是将其保存到某个位置,这是正常的,但不是我需要的,我需要在服务器中存储(保存)文件。

<?php

require_once('vendor/autoload.php');

use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\IOFactory;

$spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load('template.xlsx');
$worksheet = $spreadsheet->getActiveSheet();
$worksheet->setCellValue('A1', 'Test text ok!!!');

header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="test.xlsx" ');
header('Cache-Control: max-age=0');
$writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, "Xlsx");
$writer->save('php://output');
?>

根据上面显示的示例,我可以声明:引用phpspreadsheet for\phpoffice\phpspreadsheet的路径。。。对于两种环境(xampp和lamp server),与指令和指令相关的函数都可以正常工作,因为第二个示例可以工作,但是在第一个示例中,唯一不工作的是save()函数。这就是为什么我认为这个问题与phpspreadsheet配置和/或php文件编码无关,而是与apache或php保存文件的权限有关。有人知道为什么脚本没有在我的服务器上保存任何东西吗?先谢谢你

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题