代码之家  ›  专栏  ›  技术社区  ›  Siva

使用PHP下载的PDF文件在服务器中已损坏

  •  1
  • Siva  · 技术社区  · 15 年前

    我的代码是:

    header("Content-Disposition: attachment; filename='dfile.pdf'");
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
    header("Content-type: application/pdf;");
    
    readfile("http://www.education.gov.yk.ca/pdf/pdf-test.pdf");
    

    dfile.pdf ,但如果我尝试打开下载的文件,则会收到错误消息 the file has been damaged . 我的任何服务器设置导致此问题或其他问题?

    任何解决这个问题的建议都是值得赞赏的。

    注意:我想这可能是我的服务器PHP设置的问题,有人能告诉我“readfile”函数是否需要任何PHP设置才能在我的服务器中启用吗?

    提前谢谢,

    3 回复  |  直到 15 年前
        1
  •  3
  •   Vladislav Rastrusny    15 年前

    我认为PHP在PDF文件体之前会输出一些警告。检查一下。

        2
  •  0
  •   Siva    14 年前

    此问题是因为我的服务器PHP设置,我的服务器中未启用“allow\u url\u fopen”设置。我是用卷发来处理这种情况的,不管怎样谢谢你们的支持。

        3
  •  0
  •   Tim Cooper    13 年前

    尝试使用以下代码:

    $file = 'monkey.pdf';
    
    if (file_exists($file)) {
        header('Content-Description: File Transfer');
        header('Content-Type: application/pdf');
        header('Content-Disposition: attachment; filename='.basename($file));
        header('Content-Transfer-Encoding: binary');
        header('Expires: 0');
        header('Cache-Control: must-revalidate');
        header('Pragma: public');
        header('Content-Length: ' . filesize($file));
        ob_clean();
        flush();
        readfile($file);
        exit;
    }
    
    推荐文章