【问题标题】:Cannot save PDF to a folder on server using FPDF无法使用 FPDF 将 PDF 保存到服务器上的文件夹
【发布时间】:2018-11-10 11:52:45
【问题描述】:

我已使用 FPDF 成功创建了一个 PDF 文档,但无法将其保存到服务器上的文件夹中。我能够将 PDF 文档输出到浏览器。

我还允许写入此文件夹“fullSizeA4PdfPage”:

drwxrwxrw-

我的 PHP 代码:

require('fpdf181/fpdf.php');

$pdf = new FPDF('P','pt','A4');
$pdf->AddPage();
$pdf -> Image($pathToImage, $centreX, $centreY, $imageWidth, $imageHeight);

// SAVE A4PDF FILE TO LOCAL DIR ('/fullSizeA4PdfPage')
$nameA4PDF = 'A4PdfPage.pdf';
$A4PDFPageFolder = 'fullSizeA4PdfPage';
$localPathA4PFD = $A4PDFPageFolder.'/'.$nameA4PDF;
$pdf -> Output('F', $localPathA4PFD);  // LINE 80 I have also tried $pdf -> Output($localPathA4PFD, 'F' );

我从浏览器收到以下错误:

警告:file_put_contents(fullSizeA4PdfPage/A4PdfPage.pdf):未能 打开流:中没有这样的文件或目录 /var/www/html/labbook_aws/lab_server/fpdf181/fpdf.php 在第 1021 行

【问题讨论】:

  • 先手动创建fullSizeA4PdfPage目录
  • @fullSizeA4PdfPage 文件夹已创建,并如上授予读/写权限
  • 哦,这很奇怪。你能试试$localPathA4PDF = __DIR__ . '/fullSizeA4PdfPage/A4PdfPage.pdf';吗?
  • @Loek,当我尝试你的建议时,我得到'Undefined variable: localPathA4PFD in /var/www/html/labbook_aws/lab_server/myFile.php on line 80'
  • 你说目录的权限是rwxrwxrw-,所以非所有者非组用户不能列出目录的内容。如果运行脚本的用户与目录的所有者不同并且不在同一组中,则可以尝试使用 777 而不是 776。

标签: php fpdf


【解决方案1】:

拥有权限

drwxrwxrw-

在与所有者不同或不在同一组的用户下运行的进程无法访问目录的内容(请注意缺少的最后一个x)。因此,如果您的脚本在与目录所有者不同的用户下运行,请尝试使用 777 而不是 776 的权限。

有关x 位含义的讨论,另请参见this question。看起来即使rw应该足以读写目录中的文件,但没有x,文件的元数据无法读取,因此某些功能可能根本无法打开文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-28
    • 1970-01-01
    • 2023-04-05
    • 1970-01-01
    相关资源
    最近更新 更多