我上传了多个文件进行培训,并根据training_ID列出了它们。我如何下载与具有多个文件的training_id关联的单个文件? 我有.txt,.pdf,.docx和.pptx文件类型。 这是我试过的PHP文件。PHP文件下载
<?php
$id= $_GET['id'];
$mysqli = new mysqli("localhost","root","pass","test");
if ($mysqli->connect_errno)
{
echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}
$query = "SELECT Material_Name,Material_Data from Training_Material where Training_Id='{$id}'";
$result = $mysqli->query($query);
if($result)
{
$row = mysqli_fetch_assoc($result);
header("Content-Disposition: attachment; filename=". $row['Material_Name']);
echo $row['Material_Data'];
@mysqli_free_result($result);
}
else
{
echo "Error! Query failed: <pre>{$mysqli->error}</pre>";
}
?>
此文件没有下载。
这里DB中的Material_Data列包含使用file_get_contents方法得到的上传文件的内容。我应该怎么做才能使下载发生?
题外话,但如果你使用'mysqli'(这是一个非常好的事情),你应该使用事先准备好的声明和变量绑定而不是将信息填充到SQL查询中。对于下载的东西,尝试添加'Content-Type:application/octet-stream'头。 – Passerby