Php 无法从数据库下载pdf文件,它将显示普通记事本
我试图做一个ahref,能够从数据库下载pdf文件,但在我点击它后,下载一个普通的记事本而不是pdf,里面没有数据 这是a hrefPhp 无法从数据库下载pdf文件,它将显示普通记事本,php,pdf,Php,Pdf,我试图做一个ahref,能够从数据库下载pdf文件,但在我点击它后,下载一个普通的记事本而不是pdf,里面没有数据 这是a href <a href="download.php?id=<?php=$id;?>">Download [pfd]</a> <br> 这是download.php <?php // Connect to the database $host="localhost"; // Host name
<a href="download.php?id=<?php=$id;?>">Download [pfd]</a> <br>
这是download.php
<?php
// Connect to the database
$host="localhost"; // Host name
$username="root"; // Mysql username
$password=""; // Mysql password
$db_name="is"; // Database name
$tbl_name="publication"; // Table name
$conn = mysql_connect("$host", "$username", "$password");
if(! $conn )
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db($db_name);
if (isset($_GET["id"]) && !empty($_GET["id"])) {
$id= $_GET['id'];
$query = "SELECT file_name, file_type, file_size, content " .
"FROM $tbl_name WHERE file_id = '$id'";
$result = mysql_query($query) or die(mysql_error());
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;
mysql_close($conn);
exit;
}
?>
我猜您的结果集是空的:您的查询与任何行都不匹配。这解释了空文件内容和空文件名
由于此页面即使出现错误也会强制下载文件,因此您可能会丢失错误消息。您可以尝试暂时删除下载头以查看错误。也可以在单击链接的同时按CTRL键在新窗口中打开下载链接。通过这种方式,您可以验证下载URL是否确实包含ID
顺便说一句:您的代码中存在SQL注入漏洞Mysql中“内容”字段的类型是什么?@mesutozer。。这是longblob…下载的文件有正确的文件名吗?嗯。。。什么是正确的文件名?我的意思是下载的文件名与数据库中的“文件名”字段相同。或者它有一个像“下载(1)”这样的通用名称?下载链接是。。。这是否意味着我已将ID传递给download.php?您传递的ID不正确。似乎您正在打开idIt周围的标签,似乎您正在打印类似echo“”的链接;你需要用echo“”替换它是的。。。它的工作。。。非常感谢。。。如果没有你的帮助,我可能会修复它。。。thx..你能查一下我的第二条评论吗?似乎你是在一个单引号内的回音语句中