默认的保存电子表格路径存储在哪里?

时间:2019-06-03 17:39:24

标签: php phpspreadsheet

我已经搜索了大约3或4天,以找到phpspreadsheet保存文件路径的存储位置。此处和其他任何地方的常用答案都是在$writer->save($filename)之前的$filename中插入我想要的路径。我已经尝试过了,但是没有用。

我将显示代码和打印输出。这是在本地计算机上,Win 10专业版。 xampp的当前版本。所有工作都在本地最恶劣的环境中进行,永远不要进入防火墙之外。

phpspreadsheet示例 33_Chart_create_line.php 中的代码。正如我所说,尝试插入我想要的路径。那么,默认路径存储在哪里?

//Code     // Save Excel 2007 file
$filename = $helper->getFilename(__FILE__);
echo "file name the variable : " . $filename . "<br>";
$writer = IOFactory::createWriter($spreadsheet, 'Xlsx');
$writer->setIncludeCharts(true);
$callStartTime = microtime(true);
$writer->save($filename);
$helper->logWrite($writer, $filename, $callStartTime);

//And my try:
// Save Excel 2007 file
$filename = $helper->getFilename(__FILE__);
echo "file name the variable : " . $filename . "<br>";
$writer = IOFactory::createWriter($spreadsheet, 'Xlsx');
$writer->setIncludeCharts(true);
$callStartTime = microtime(true);
$writer->save("C:/xampp/htdocs/tmp/" . $filename);
$helper->logWrite($writer, $filename, $callStartTime);

正常打印输出消息:

  

18:45:18将Xlsx格式写入   C:\ Users \ HAL1GB〜1 \ AppData \ Local \ Temp / phpspreadsheet / 33_Chart_create_line.xlsx   在0.0233秒内

插入路径时的消息:

  

18:45:18将Xlsx格式写入   C:\ Users \ HAL1GB〜1 \ AppData \ Local \ Temp / phpspreadsheet / 33_Chart_create_line.xlsx   在0.0233秒内

如您所见,它只是将我的路径添加到默认路径,然后无法保存。 $ filename的回显,显示路径来自$helper->getFilename(FILE);调用。文件名变量:C:\Users\HAL1GB~1\AppData\Local\Temp/phpspreadsheet/33_Chart_create_line.xlsx

错误消息:

  

致命错误:未捕获的PhpOffice \ PhpSpreadsheet \ Writer \ Exception:可以   没开   C:/ xampp / htdocs / tmp / C:\ Users \ HAL1GB〜1 \ AppData \ Local \ Temp / phpspreadsheet / 33_Chart_create_line.xlsx   用于写作。在   C:\ xampp \ htdocs \ MySql \ vendor \ phpoffice \ phpspreadsheet \ src \ PhpSpreadsheet \ Writer \ Xlsx.php:218   堆栈跟踪:#0   C:\ xampp \ htdocs \ MySql \ vendor \ phpoffice \ phpspreadsheet \ samples \ Chart \ 33_Chart_create_line.php(105):   PhpOffice \ PhpSpreadsheet \ Writer \ Xlsx-> save('C:/ xampp / htdocs ...')#1   {main}投入   C:\ xampp \ htdocs \ MySql \ vendor \ phpoffice \ phpspreadsheet \ src \ PhpSpreadsheet \ Writer \ Xlsx.php   在第218行

1 个答案:

答案 0 :(得分:0)

保存文件时,请勿使用实际名称中的$filename。指定要保存文件的位置以及位置的完整路径和名称。使用您的示例将是:

$writer->save('C:/xampp/htdocs/tmp/Example_File.xlsx');

PHPSpreadSheet随附的file类包含一个名为sysGetTempDir的函数。在该函数中,它将使用系统定义的临时文件路径,即您所看到的路径;或者,如果已定义并且可写的话,它将使用PHP INIfile中的upload_tmp_dir设置的值。

如果您想控制文件的创建位置,请将PHP INI文件中的upload_tmp_dir值设置为所需的路径。