用PHP打开PDF文件

时间:2014-02-28 09:11:55

标签: php

如何使用PHP打开PDF文件,无法通过Web浏览器访问?我的意思是,您无法通过在Web浏览器中键入PDF的位置来打开PDF文件。

如何使用PHP打开文件?

我在这里有以下代码:

$kollinr = $this->findFreeKollinr($link);
        $send_id = $link->inQuery("INSERT INTO frakthandling (abonnemang_id, ref, weight, content, kollinr, users_id, datum) VALUES(".$abonnemang_id.", '".$ref."', '".$weight."', '".$content."', '".$kollinr."', ".$user.", NOW())");
        if($abonnemang_id==99999999)
        {
            $link->inQuery("INSERT INTO frakthandling_dyn (frakthandling_id, fromname, fromaddr, fromort, fromtele, toname, toaddr, toort, tozip) VALUES(".$send_id.", '".$dyndata["fromname"]."', '".$dyndata["fromaddr"]."', '".$dyndata["frompostnr"]." ".$dyndata["fromort"]."', '".$dyndata["fromtele"]."', '".$dyndata["toname"]."', '".$dyndata["toaddr"]."', '".$dyndata["topostnr"]." ".$dyndata["toort"]."', '".$dyndata["topostnr"]."')");
        }

        $file = file_get_contents("http://x.x.x.x/documents/multifrakt.php?id=".$send_id."");
        $retdata = array();
        $retstatus=0;
        //echo $file;
        $local_filename  = "/data/web/frakt/frakt_".$send_id.".pdf";
        //$remote_filename = "frakt_".$send_id.".pdf";
        $local_filename_ps  = "/data/web/frakt/frakt_".$send_id.".ps";
        $remote_filename_ps = "frakt_".$send_id.".ps";
        $remote_filename_pdf = "frakt_".$send_id.".pdf";
        $dnfile = fopen($local_filename, "w");
        if(fwrite($dnfile, $file) === FALSE) {
           echo "Cannot write to file ($local_filename)";
           exit;
        }
    return $local_filename; //What should I return in order to open the file??
        fclose($dnfile);

上面的代码是类的一部分,在运行以下代码时实例化:

elseif(isset($_POST['do_download']))
{
    $pdff = new frakt();
    $pdf_d = $pdff->downloadPDF($_POST["ref"], $_POST["weight"], $_POST["content"], 99999999, $_POST, $_SESSION["user"]["users_id"], $link);
    if($pdf_d) {    
        //Show the PDF here
    }
}

任何可以帮助我的人? :)

2 个答案:

答案 0 :(得分:0)

该文件在服务器上有一个内部文件路径。这仅在服务器内可见(如果您登录则为ftp) 这是“x.x.x.x / data / web / kundadmin_dev / www / frakt / frakt_14401.pdf”

网络服务器有一个文档根目录。这是Web服务器的起点,只有文档内部的文档可见。 它可能是“/ data / web / kundadmin_dev / www” (也许是“/ data / web / kundadmin_dev / www / frakt”,你需要自己检查一下)

需要在两个路径之间进行转换。

因此,您可以通过将其放入浏览器的URL中来下载文件 X.X.X.X / frakt / frakt_14401.pdf

答案 1 :(得分:0)

查看正在为您下载的代码,看起来像实际的文件名和位置对用户是隐藏的。脚本基本上发布了一个帖子请求。我在这里推荐的是用curl做同样的事情。基本上, 1)将退出放入操作页面,然后打印post对象。 2)删除出口,并通过命令行将帖子论证传递给curl post请求。