在我的代码中,我可以下载一个文件,但它主要导致文件损坏等。我真的卡住了,任何人都知道如何改进我的代码。我的图像/文档存储在“课程”文件夹中
他们下载并且有一个图像'png'可以完美下载,但上传类似的PNG文件会导致文件损坏。
$cool = $_GET['id'];
$sql = "SELECT id, type, name, size FROM upload WHERE id='$cool'";
$result = mysql_query($sql, $db);
$data = mysql_result($result, 0, "id");
$name = mysql_result($result, 0, "name");
$size = mysql_result($result, 0, "size");
$type = mysql_result($result, 0, "type");
header("Content-type: $type");
header("Content-length: $size");
header("Content-Disposition: attachment; filename=$name");
header("Content-Description: PHP Generated Data");
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
ob_clean();
flush();
readfile($name);
exit();
答案 0 :(得分:-1)
阅读SQL注入和/或转移到PDO或MySQLi。由于这个原因,标准MySQL函数已被弃用。
此错误可能来自大量可能的问题。你从数据库中提取文件名和大小 - 它们真的匹配吗?你确定文件存在吗? (你没有检查 - 因此,它的输出可能只是一条错误消息,告诉你文件不存在) 如果您使用记事本打开损坏的下载,您会得到什么?您可能会在那里发现PHP错误。
在编辑原始问题之前,我不会再精确了。