用PHP打开PDF文件

用PHP打开PDF文件,php,Php,如何使用PHP打开无法通过web浏览器访问的PDF文件?我的意思是,您不能通过在web浏览器中键入PDF文件的位置来打开PDF文件 如何使用PHP打开文件 我这里有以下代码: $kollinr = $this->findFreeKollinr($link); $send_id = $link->inQuery("INSERT INTO frakthandling (abonnemang_id, ref, weight, content, kollinr, users_

如何使用PHP打开无法通过web浏览器访问的PDF文件?我的意思是,您不能通过在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
    }
}

有谁能帮我吗?:)

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

Web服务器具有文档根。这是web服务器的起点,只有其中的文档可见。 可能是“/data/web/kundadmin_dev/www” (也许“/data/web/kundadmin_dev/www/frakt”,你需要检查一下自己)

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

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

查看为您下载的代码,看起来实际文件名A和位置对用户隐藏。脚本基本上发出post请求。在这里,我建议对curl做同样的处理。所以基本上, 1) 在“操作”页面中放置“退出”,然后打印post对象。
2) 移除出口,并通过命令行将post参数传递给curl post请求。

“我的意思是,您不能通过在web浏览器中键入PDF文件的位置来打开PDF文件”这是什么意思?文件在那里吗?服务器是否受保护?您无法在web浏览器中查看或导航到pdf文件,因此我猜服务器在某种程度上受保护。当您看不到它时,您如何知道它在那里?它是您的服务器吗?因为我可以通过FTP客户端导航到该文件。该文件被写入location/data/web/frakt/Sorry,但最终不清楚您要问什么。您似乎还没有真正了解这些组件是如何协同工作的。那么你到底想做什么。请尝试更清楚地解释你在这方面的目标是什么。浏览器本身无法“打开PDF文件”。它可以为您下载,或者您需要一个浏览器插件(也可以归结为下载),或者您需要一个客户端脚本逻辑来解释这种专有文件格式。