gpt4 book ai didi

php - 从mysql数据库读取pdf文件

转载 作者:行者123 更新时间:2023-11-29 03:25:53 25 4
gpt4 key购买 nike

我正在使用这个例子 http://www.php-mysql-tutorial.com/wikis/mysql-tutorials/uploading-files-to-mysql-database.aspx

上传部分顺利进行。但是我在下载部分遇到了很多问题。我想创建一个链接,用户单击该链接,然后他就可以下载适当的 pdf。但是页面运行并且 anchor 标记可见。但是当我点击它时,正在下载 .htm 文件下面是我的download.php

<html>
<head>
<title>Download File From MySQL</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<?php
include 'config.php';
include 'opendb.php';

$query = "SELECT id, name FROM upload";
$result = mysql_query($query) or die('Error, query failed');
if(mysql_num_rows($result) == 0)
{
echo "Database is empty <br>";
}
else
{
while(list($id, $name) = mysql_fetch_array($result))
{
?>
<?php echo "<a href='download.php?id='".$id.";>Download</a> <br>";

}
}
include 'closedb.php';
?>
</body>
</html>
<?php
if(isset($_GET['id']))
{
// if id is set then get the file with the id from database

include 'config.php';
include 'opendb.php';

$id = $_GET['id'];
$query = "SELECT name, type, size, content " .
"FROM upload WHERE id = '$id'";

$result = mysql_query($query) or die('Error, query failed');
list($name, $type, $size, $content) = mysql_fetch_array($result);

header("Content-length: $size");
header("Content-type: $type");
header("Content-Disposition: attachment; filename=$name");
echo $content;

include 'closedb.php';
exit;
}

?>

最佳答案

问题在于,无论用户是想查看要下载的文件,还是想下载文件本身,您都在页面顶部开始 html 输出。在那一刻,要下载的文件变成了一个 html 页面。

您的代码应该首先检查是否设置了 id 参数。如果没有,则开始生成 html 页面。如果是,那么您从数据库中读取文件,设置 header 并将内容发回。

或者只是使用不同的 php 页面来显示文件列表并下载其中一个文件。

关于php - 从mysql数据库读取pdf文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36354477/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com