【问题标题】:Zend PDF - save permissionsZend PDF - 保存权限
【发布时间】:2013-09-13 14:13:02
【问题描述】:

我正在尝试用一页保存一个简单的 pdf,但它不起作用。我就是这样做的:

try {
       // create PDF
       $pdf = new Zend_Pdf();

       // create A4 page
       $page = new Zend_Pdf_Page(Zend_Pdf_Page::SIZE_A4);

       // define font resource
       $font = Zend_Pdf_Font::fontWithName(Zend_Pdf_Font::FONT_HELVETICA);

       // set font for page
       // write text to page
       $page->setFont($font, 24)
           ->drawText('That which we call a rose,', 72, 720)
           ->drawText('By any other name would smell as sweet.', 72, 620);

       // add page to document
       $pdf->pages[] = $page;

       // save as file
       $pdf->save("/test.pdf");
       echo 'SUCCESS: Document saved!';
   } catch (Zend_Pdf_Exception $e) {
       die ('PDF error: ' . $e->getMessage());
   } catch (Exception $e) {
       die ('Application error: ' . $e->getMessage());
   }

我总是收到这个错误:

PDF 错误:无法打开“/test.pdf”文件进行写入。

我找到了this stackoverflow 主题,但对我帮助不大。他们说要更改保存路径,但是将其更改为什么?假设我想将它下载到我的下载文件夹,我该怎么做?

我在 mac 上的下载文件夹是:/Users/myname/Downloads

【问题讨论】:

    标签: php zend-framework pdf zend-pdf


    【解决方案1】:

    尝试保存在 Zend 应用目录中

      $pdf->save("test.pdf");
    

    或保存在下载中

       $pdf->save("/Users/myname/Downloads/test.pdf");
    

    【讨论】:

    • 因此网络服务器用户可能没有写入该目录的权限。如果可行,您可以尝试保存在 /tmp/test.pdf 中,将权限更改为要保存它的目录的正确权限。
    【解决方案2】:

    使用 ls -ld 确保您对文件夹具有写入权限。如果您在文件夹中没有写入权限,请使用 chmod 将其授予您自己。

    【讨论】:

    • 我对我的下载文件夹有权限?我必须设置选项 true local 还是 .. ?
    • 我不知道你的具体设置是怎样的,但是如果文件夹没有适当的写权限,它将不允许php写文件。使用 ls -ld 找出答案 - 它会让您了解该文件夹允许执行的操作。
    • 一个问题,当我保存它时,它会保存到我的服务器还是用户他的电脑?
    • 您是否有教程如何将文件保存到用户下载文件夹?我不需要服务器上的文件。
    • 在服务器上创建文件后,将用户重定向到该文件,它将为他们提供下载面板,然后一旦您确定用户已下载该文件,您就可以将其删除, 或留在服务器上以通过 chron 作业或其他此类进程删除。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-30
    • 2020-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多