使用PHP在zip中打开PDF文件而不提取

时间:2015-03-24 18:34:57

标签: php pdf zip

我想知道是否可以在不提取.zip文件的情况下打开位于.zip文件中的PDF文件?如果它不在.zip文件中,我可以打开PDF,如下所示:

<?
header("Content-type: application/pdf");
header("Content-Disposition: inline; filename=C:\orders\data.pdf");
@readfile("filename=C:\orders\data.pdf");
?>

我尝试这样做,但这不起作用:

<?
header("Content-type: application/pdf");
header("Content-Disposition: inline; filename=C:\orders\datacollection.zip\data.pdf");
@readfile("filename=C:\orders\datacollection.zip\data.pdf");
?>

所以我的问题是,PHP是否可以打开位于.zip文件中的PDF文件而不提取它?

我也试过了,但没有帮助:

<?php
$zip = new ZipArchive;
$zip->open('weborder.zip');
$contents = $z->getFromName('weborder.pdf');
?>

2 个答案:

答案 0 :(得分:0)

使用zip://包装器:

您可以将其与fopen/freadfile_get_contents

一起使用
$pdf = file_get_contents('zip://datacollection.zip#data.pdf');
echo $pdf;

答案 1 :(得分:0)

(代表OP发布):

这是一个解决方案,感谢JoeCoder:

header("Content-type: application/pdf");
$pdf = file_get_contents('zip://C:/xampp/htdocs/weborder.zip#weborder.pdf');
echo $pdf;
?>