Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用PHPExcel选择保存excel文件的位置_Php_Yii_Phpexcel - Fatal编程技术网

如何使用PHPExcel选择保存excel文件的位置

如何使用PHPExcel选择保存excel文件的位置,php,yii,phpexcel,Php,Yii,Phpexcel,使用PHPExcel创建excel文件时出现问题。我想选择保存excel文件的位置,但不知道如何保存 $model = new User(); $labels = $model->attributeNames(); $data = $model->findAll(); $objPHPExcel = Yii::app()->excel; ........ $filename = 'text.xlsx'; $objWriter = new PHPExcel_Writer_

使用PHPExcel创建excel文件时出现问题。我想选择保存excel文件的位置,但不知道如何保存

 $model = new User();
 $labels = $model->attributeNames();
 $data = $model->findAll();
 $objPHPExcel = Yii::app()->excel;

........
$filename = 'text.xlsx';
$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
$objWriter->save($filename);
请帮帮我。非常感谢你

$objWriter->save($filename);
。。。。将
$filename
的值更改为要保存文件的任何位置的文件路径,例如

$filename = '/path/to/folder/test.xlsx';
$objWriter->save($filename);

如果您在php文件中包含以下标题。您的用户将有一个下载选项弹出窗口:

header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");;
header("Content-Disposition: attachment;filename=$filename");
header("Content-Transfer-Encoding: binary ");

将文件名更改为所需路径,即

$name = '/path/to/folder/xyz.xlsx';
$objWriter->save($name);

使用PHPExcel下载EXCEL对我来说很有用…

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); 
对于使用Excel5编写器创建的.xls文件:

header('Content-Type: application/vnd.ms-excel'); //mime type

对于使用Excel2007 Writer创建的.xlsx文件:

header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); //mime type

header('Content-Disposition: attachment;filename="you-file-name.xlsx"'); //tell browser what's the file name
header('Cache-Control: max-age=0'); //no cache 
ob_end_clean();
$objWriter->save('php://output'`enter code here`);
exit();

您是否尝试将
$filename
更改为
/path/to/save/text.xlsx
?您无法控制用户/客户端浏览器将文件保存在何处,您不应该能够。。。。如果你想在用户机器上保存到<代码> /ETC/PasWD < /Cord>,如果它是PimiTeExcel的话,那将是一个难以置信的安全缺陷:当点击按钮显示窗口时,我有1个按钮来选择位置保存。怎么做?您的意思是要将文件发送到用户的浏览器?然后让他们选择要将文件保存在电脑上的哪个文件夹?然后发送相应的标题,并保存到
php://output
/Examples/01simple download xlsx.php所示
@ZaidBinKhalid如果要将文件保存到磁盘,则需要为
保存()提供文件系统文件名
方法而不是输出流。。。这将保存到服务器上的一个文件中,您可以对其进行压缩,然后将zipfile发送到浏览器。。。但是http将您限制为一个请求、一个响应,一次不能向服务器发送多个输出/文件time@MarkBaker谢谢,这对我来说很好。我只是传递绝对路径并删除所有标题。