如何在 iframe html 中打开放置在直接访问阻止目录中的 pdf 文件
how to open pdf file that is placed in direct access blocked directory in iframe html
我所做的是对包含 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>
如果您的文件与您的网站不在同一主机上,则浏览器的预期行为是下载文件。要允许打开该文件,请确保您的网站和文件托管在同一台服务器上。
我已将我的代码更新为以下代码,所有问题都已解决..
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
}
?>
谢谢大家
我所做的是对包含 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>
如果您的文件与您的网站不在同一主机上,则浏览器的预期行为是下载文件。要允许打开该文件,请确保您的网站和文件托管在同一台服务器上。
我已将我的代码更新为以下代码,所有问题都已解决..
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
}
?>
谢谢大家