随着数据库连接正常,当我尝试下载文件时,我得到的内容是我正在处理的这个文件的一个php页面。而不是上传到数据库的文件。这是为什么发生?从数据库下载文件
$query = "SELECT id, name FROM docu";
$result = mysqli_query($con,$query) or die('Error, query failed');
if(mysqli_num_rows($result)==0){
echo "Database is empty <br>";
}
else{
while(list($id, $name) = mysqli_fetch_array($result)){
echo "<a href='download.php?id='$id>$name</a><br>";
}
}
if(isset($_GET['id'])){
$id = $_GET['id'];
$query = "SELECT id, name, type, size, content FROM docu WHERE id = '$id'";
$result = mysqli_query($con,$query) or die('Error, query failed');
list($id, $name, $type, $size, $content) = mysqli_fetch_row($result);
header("Content-Disposition: attachment; filename='$name'");
header("Content-type: $type");
header("Content-length: $size");
echo $content;
exit;
}
你不能有回音和标题。另外,您的查询可能失败。 –
在打开PHP标记 (例如'<?php error_reporting(E_ALL);)后立即向文件顶部添加错误报告。 ini_set('display_errors',1);'然后你的代码的其余部分,看看它是否产生任何东西, 以及'或die(mysqli_error($ con))'到'mysqli_query()'。 –
你也用相同的变量查询两次。向我们展示数据库模式和行内容。如果您的列不是BLOB,则文件必须存在于您的服务器上。 –