此代码在localhost上正常工作,但在实时服务器上显示
找不到文件
检查文件名是否有大写或其他输入错误。 检查文件是否已移动,重命名或删除。
这是我的代码
excel.php
<?php
error_reporting(1);
ini_set('display_errors', 0);
ini_set('display_startup_errors', TRUE);
$target = 'Myfile.xlsx';
include 'phpexcel/Classes/PHPExcel/IOFactory.php';
$inputFileType = PHPExcel_IOFactory::identify($target);
function datefix_excel($excel) {
$dif=(41885-$excel)*86400;
$seconds=1409737670-$dif;
$date=date("d/m/Y",$seconds);
return $date; }
//echo 'File ',pathinfo($inputFileName,PATHINFO_BASENAME),' has been identified as an ',$inputFileType,' file<br />';
//echo 'Loading file ',pathinfo($inputFileName,PATHINFO_BASENAME),' using IOFactory with the identified reader type<br />';
$objReader = PHPExcel_IOFactory::createReader($inputFileType);
$objPHPExcel = $objReader->load($target);
$i = 0;
$found = false;
try
{
//
foreach ($objPHPExcel->getWorksheetIterator() as $worksheet)
{
//
//$objWorksheet = $objPHPExcel->getActiveSheet();
//now do whatever you want with the active sheet
$worksheet->setShowGridLines(false);
$worksheet->getPageSetup()->setOrientation(PHPExcel_Worksheet_PageSetup::PAPERSIZE_A2_PAPER );
$worksheet->getPageSetup()->setPaperSize(PHPExcel_Worksheet_PageSetup::PAPERSIZE_A2_PAPER );
$worksheet->getPageSetup()->setFitToPage(true);
$worksheet->getPageSetup()->setFitToWidth(1);
$worksheet->getPageSetup()->setFitToHeight(0);
$worksheet->getPageSetup()->setScale(40);
$worksheet->getStyle('F1:F4')->getAlignment()->setWrapText(false);
$worksheet->getStyle('D6:D8')->getAlignment()->setWrapText(false);
$sheetData = $objPHPExcel->getActiveSheet()->toArray(null,true,true,true);
$count = 0;
$found == false;
//
$worksheetTitle = $worksheet->getTitle();
$highestRow = $worksheet->getHighestRow(); // e.g. 10
$highestColumn = $worksheet->getHighestColumn(); // e.g 'F'
$highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);
$nrColumns = ord($highestColumn) - 64;
for ($row = 1; $row <= $highestRow; ++ $row) {
for ($col = 0; $col < $highestColumnIndex; ++ $col) {
$cell = $worksheet->getCellByColumnAndRow($col, $row);
$val = $cell->getValue();
if($val==$_REQUEST['roll'])
{
//echo "Roll Number found: ".$_REQUEST['roll']." <br/>";
$found = true;
// $objPHPExcel->getActiveSheet()->setCellValue('C23',$val);
$objPHPExcel->getActiveSheet()->setCellValue('C23',datefix_excel($objPHPExcel->getActiveSheet()->getCell('C23')->getValue()));
$rendererName = PHPExcel_Settings::PDF_RENDERER_DOMPDF;
$rendererLibrary = 'dompdf';
$rendererLibraryPath = './' . $rendererLibrary;
//require_once (realpath(dirname(dirname(dirname(__FILE__))))."/libraries/pdf.php");
//echo $rendererName.' and '.$rendererLibraryPath;
if (!PHPExcel_Settings::setPdfRenderer($rendererName,$rendererLibraryPath)) {
die('NOTICE: Please set the $rendererName and $rendererLibraryPath values' .EOL .'at the top of this script as appropriate for your directory structure');
}
header("HTTP/1.1 200 OK");
header("Pragma: public");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private", false);
header('Content-Type: application/pdf');
header('Content-Disposition: attachment;filename="rename.pdf"'); //tell browser what's the file name
header('Cache-Control: max-age=0'); //no cache
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'PDF');
$objWriter->setSheetIndex($i);
//$objWriter->save('test.pdf');
$objWriter->save('php://output');
break;
}
else{
continue;
}
}
}
//
}
}
catch(Exception $e)
{
//echo $e;
}
?>
答案 0 :(得分:0)
我会检查:1)当前文件夹是否可写? 2)pdf.php被注释掉,尝试启用它(为什么?本地机器可能安装了PDF,服务器没有),3)尝试保存到文件而不是输出到浏览器,这将绕过任何浏览器/安全问题。