我对php内容处理有一个小问题,我有点理解问题所在,但我不知道如何解决它(使用数据库的新手)。调用这个php页面将导致没有显示任何回声,只显示下载框,我只打算用于“cv”(不确定它是否正常工作,因为我收到的可下载文件无法打开)
删除header(content...
行将导致显示回声,但我将无法下载指定的文件。我希望它显示为链接,点击后会下载其内容。
$newEmployeeName = $_POST['name'];
$newEmployeeArea = $_POST['area'];
$newEmployeeCV = $_POST['cv'];
include('databaseConnection.php');
$result = mysql_query("SELECT * FROM participants");
while($row = mysql_fetch_array($result))
{
$download_me = $row['cv'];
header("Content-Disposition: attachment; filename=$download_me");
echo $row['name'] . " " . $row['area_of_exp'] . " " . $download_me;
echo "<br />";
}
答案 0 :(得分:2)
Content-Disposition
标题将强制脚本显示在下载后回显的任何内容。您通常会在从文件系统中读取文件时使用它,因此您可以将其作为下载提供。在您的情况下,如果您在服务器上存储CV,那么您可以按照以下方式提供它们:
<?php
$sql = "SELECT * FROM table WHERE id = :id LIMIT 1";
$stmt = $db->prepare($sql);
$stmt->bindParam(':id', $id, PDO::PARAM_INT);
$stmt->execute();
$row = $stmt->fetchObject();
if ($row) {
header('Content-Disposition: attachment; filename=' . $row['filename']);
readfile($uploads_dir . $row['filename']);
exit;
}
else {
die('Invalid CV requested.');
}
显然上面是该过程的简化版本,您需要调整它以适合您的应用程序,但这就是它的要点。
另外,请勿使用mysql_
功能。它们已被弃用(根据this page上的警告)。使用PDO或新的MySQLi(MySQL改进的)扩展名。