默认保存电子表格路径存储在哪里?
Where is the default save spreadsheet path stored at?
找了大概3、4天,才找到phpspreadsheet保存文件路径的存放位置。此处和其他任何地方的常用答案是在 $writer->save($filename)
之前插入我想要的路径 $filename
。我已经尝试过了,但它不起作用。
我会在代码和打印输出中展示。这是在本地计算机上,Win 10 专业版。 xampp 的当前版本。全部在localhosts环境下工作,切勿走出防火墙。
来自 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 Write Xlsx format to
C:\Users\HAL1GB~1\AppData\Local\Temp/phpspreadsheet/33_Chart_create_line.xlsx
in 0.0233 seconds
当我插入路径时的消息:
18:45:18 Write Xlsx format to
C:\Users\HAL1GB~1\AppData\Local\Temp/phpspreadsheet/33_Chart_create_line.xlsx
in 0.0233 seconds
如您所见,它只是将我的路径添加到默认路径,然后无法进行保存。 $filename 的回显,显示路径来自 $helper->getFilename(FILE);
调用。文件名变量:C:\Users\HAL1GB~1\AppData\Local\Temp/phpspreadsheet/33_Chart_create_line.xlsx
错误信息:
Fatal error: Uncaught PhpOffice\PhpSpreadsheet\Writer\Exception: Could
not open
C:/xampp/htdocs/tmp/C:\Users\HAL1GB~1\AppData\Local\Temp/phpspreadsheet/33_Chart_create_line.xlsx
for writing. in
C:\xampp\htdocs\MySql\vendor\phpoffice\phpspreadsheet\src\PhpSpreadsheet\Writer\Xlsx.php:218
Stack trace: #0
C:\xampp\htdocs\MySql\vendor\phpoffice\phpspreadsheet\samples\Chart_Chart_create_line.php(105):
PhpOffice\PhpSpreadsheet\Writer\Xlsx->save('C:/xampp/htdocs...') #1
{main} thrown in
C:\xampp\htdocs\MySql\vendor\phpoffice\phpspreadsheet\src\PhpSpreadsheet\Writer\Xlsx.php
on line 218
保存文件时不要在实际名称中使用 $filename
。指定要保存文件的位置和位置的完整路径和名称。使用您的示例:
$writer->save('C:/xampp/htdocs/tmp/Example_File.xlsx');
PHPSpreadSheet 自带的file
class包含一个名为sysGetTempDir
的函数。在该函数中,它将使用系统定义的临时文件路径,这就是您所看到的,或者,如果它已定义且可写,则 PHP INIfile 中 upload_tmp_dir
设置的值。
如果您想控制文件的创建位置,请将 PHP INI 文件中的 upload_tmp_dir
值设置为所需的路径。
找了大概3、4天,才找到phpspreadsheet保存文件路径的存放位置。此处和其他任何地方的常用答案是在 $writer->save($filename)
之前插入我想要的路径 $filename
。我已经尝试过了,但它不起作用。
我会在代码和打印输出中展示。这是在本地计算机上,Win 10 专业版。 xampp 的当前版本。全部在localhosts环境下工作,切勿走出防火墙。
来自 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 Write Xlsx format to C:\Users\HAL1GB~1\AppData\Local\Temp/phpspreadsheet/33_Chart_create_line.xlsx in 0.0233 seconds
当我插入路径时的消息:
18:45:18 Write Xlsx format to C:\Users\HAL1GB~1\AppData\Local\Temp/phpspreadsheet/33_Chart_create_line.xlsx in 0.0233 seconds
如您所见,它只是将我的路径添加到默认路径,然后无法进行保存。 $filename 的回显,显示路径来自 $helper->getFilename(FILE);
调用。文件名变量:C:\Users\HAL1GB~1\AppData\Local\Temp/phpspreadsheet/33_Chart_create_line.xlsx
错误信息:
Fatal error: Uncaught PhpOffice\PhpSpreadsheet\Writer\Exception: Could not open C:/xampp/htdocs/tmp/C:\Users\HAL1GB~1\AppData\Local\Temp/phpspreadsheet/33_Chart_create_line.xlsx for writing. in C:\xampp\htdocs\MySql\vendor\phpoffice\phpspreadsheet\src\PhpSpreadsheet\Writer\Xlsx.php:218 Stack trace: #0 C:\xampp\htdocs\MySql\vendor\phpoffice\phpspreadsheet\samples\Chart_Chart_create_line.php(105): PhpOffice\PhpSpreadsheet\Writer\Xlsx->save('C:/xampp/htdocs...') #1 {main} thrown in C:\xampp\htdocs\MySql\vendor\phpoffice\phpspreadsheet\src\PhpSpreadsheet\Writer\Xlsx.php on line 218
保存文件时不要在实际名称中使用 $filename
。指定要保存文件的位置和位置的完整路径和名称。使用您的示例:
$writer->save('C:/xampp/htdocs/tmp/Example_File.xlsx');
PHPSpreadSheet 自带的file
class包含一个名为sysGetTempDir
的函数。在该函数中,它将使用系统定义的临时文件路径,这就是您所看到的,或者,如果它已定义且可写,则 PHP INIfile 中 upload_tmp_dir
设置的值。
如果您想控制文件的创建位置,请将 PHP INI 文件中的 upload_tmp_dir
值设置为所需的路径。