2014-02-28 172 views
0

如何用PHP打开一个不能通过Web浏览器访问的PDF文件?我的意思是,您无法通过在Web浏览器中输入PDF的位置来打开PDF文件。用PHP打开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 
    } 
} 

人谁可以帮我? :)

+0

“我的意思是,您无法通过在Web浏览器中输入PDF的位置来打开PDF文件”您是什么意思?该文件是否存在?服务器是否受到保护? –

+0

你不能在浏览器中导航到pdf-filen,所以我猜服务器在某些方面受到了保护。 – user500468

+0

当你看不见它时,你怎么知道它在那里?它是你的服务器吗? –

回答

0

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

Web服务器具有文档根目录。这是Web服务器的起点,只有它内部的文档可见。 这可能是 “/数据/网络/ kundadmin_dev/WWW” (也许 “/数据/网络/ kundadmin_dev/WWW/frakt”,您需要检查自己)

需要两个pathes之间的转换。

所以,你可以把这个在URL在浏览器中 XXXX/frakt/frakt_14401.pdf

+0

非常感谢! :) – user500468

0

望着这是做下载你的代码下载你的文件,看起来像实际文件名A和位置对用户是隐藏的。脚本基本上提出了一个请求。我会在这里推荐的是做同样的卷曲。 SO基本上, 1)将退出放入操作页面,并打印帖子对象。 2)删除退出,并通过命令行将帖子参数传递给卷发请求。