如何打开放置在iframe html中直接访问阻止目录中的pdf文件
Posted
技术标签:
【中文标题】如何打开放置在iframe html中直接访问阻止目录中的pdf文件【英文标题】:how to open pdf file that is placed in direct access blocked directory in iframe html 【发布时间】:2021-09-02 03:23:35 【问题描述】:我所做的是我对包含 pdf 的目录之一设置了直接访问限制。现在我必须在 iframe 中打开文件。当我创建文件副本并将该文件地址传递给 iframe src 时,它会下载而不是打开文件。
下面是我的代码。
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<head>
<title><?php echo $_GET['filename'] ?></title>
<meta name="viewport" content="width=device-width, initial-scale=1" />
</head>
<body>
<?php
$mime = mime_content_type($_GET['filename']);
if(strstr($mime, "image/"))
?>
<img src="fileViewer.php?filename=<?php echo $_GET['filename'] ?>" style="width: 70%;margin-left: 15%;">
<?php
else if(strstr($mime, "application/pdf"))
$myfile = fopen("Temps/".$_SESSION['userName']."file.pdf", "w");
fwrite($myfile, file_get_contents($_GET['filename']));
$fileName= "Temps/".$_SESSION['userName']."file.pdf";
?>
<iframe src="<?php echo $fileName ?>" style="width: 100%;height: 100vh;"></iframe>
<?php
else
?>
<iframe src="fileViewer.php?filename=<?php echo $_GET['filename'] ?>" style="width: 100%;height: 100vh;"></iframe>
<?php
?>
</body>
</html>
【问题讨论】:
这能回答你的问题吗? Show a PDF files in users browser via PHP/Perl 这能回答你的问题吗? Show a PDF files in users browser via PHP/Perl 不,我的代码已经在下载 pdf,但我想在 embed 等浏览器中显示 pdf。 请不要在问题中编辑解决方案公告。接受(即单击旁边的“勾号”)现有答案之一,如果有的话。如果现有答案尚未涵盖您的解决方案,您还可以创建自己的答案,甚至接受它。 【参考方案1】:如果您的文件与您的网站不在同一主机上,则浏览器的预期行为是下载文件。要允许打开该文件,请确保您的网站和文件托管在同一台服务器上。
【讨论】:
文件和脚本都在同一个主机上【参考方案2】:我已将我的代码更新为以下代码,一切都已解决..
session_start();
?>
<?php
$mime = mime_content_type($_GET['filename']);
if(strstr($mime, "image/"))
?>
<img src="fileViewer.php?filename=<?php echo $_GET['filename'] ?>" style="width: 70%;margin-left: 15%;">
<?php
else if(strstr($mime, "application/pdf"))
$file = $_GET['filename'];
$filename = $_GET['filename']; /* Note: Always use .pdf at the end. */
header('Content-type: application/pdf');
header('Content-Disposition: inline; filename="' . $filename . '"');
header('Content-Transfer-Encoding: binary');
header('Content-Length: ' . filesize($file));
header('Accept-Ranges: bytes');
@readfile($file);
?>
<?php
else
?>
<iframe src="fileViewer.php?filename=<?php echo $_GET['filename'] ?>" style="width: 100%;height: 100vh;"></iframe>
<?php
?>
谢谢大家
【讨论】:
以上是关于如何打开放置在iframe html中直接访问阻止目录中的pdf文件的主要内容,如果未能解决你的问题,请参考以下文章
如何在 iframe 中阻止弹出式广告、横幅广告和视频广告?
如何阻止 wordpress 剥离或更改我的 html 代码,以便我可以在文本块中添加嵌入式 iframe?