2012-11-19 64 views
-4

可能重复:
download php is always damaged损坏的文件下载PHP

在我的代码,我可以下载一个文件,但它主要是导致损坏的文件等。我很坚持,有任何人有任何想法如何我可以改善我的代码。我的图片/文档存储在文件夹'课程'

他们下载并有一个图像'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

结构不好并且很难看到这里提出的问题,请标记一些答案,您有14个问题没有任何答案标记为肯定,并且您的问题结构较差,请查看常见问题或停止污染堆栈溢出 –

回答

-1
  1. 阅读上的SQL注入和/或移动到PDO或MySQLi的。由于这个原因,标准的MySQL函数已经被弃用了。

  2. 此错误可能来自大量可能的问题。你从数据库中提取文件名和大小 - 他们真的匹配吗?你确定该文件甚至存在吗? (你没有检查 - 因此,它的输出可能只是一个错误消息,告诉你该文件不存在) 如果使用记事本打开损坏的下载,你会得到什么?有机会,你会发现在那里的PHP错误。

直到原始问题被编辑后,我才会更加精确。