如何使用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
}
}
任何可以帮助我的人? :)
答案 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请求。