通过PHP下载时文件被破坏的任何想法?

时间:2012-02-12 12:46:30

标签: php javascript html

我可以上传和下载,但我下载的文件已损坏。我测试下载的文件类型是Word Document。

下载时我的代码如下:

if(isset($_GET['id'])){
include 'Library/opendb.php';

$id = $_GET['id'];
echo $id;
$query = "SELECT name,type,size,content "."FROM filetble WHERE id = '$id'";

$result = mysql_query($query,$con) or die('Error, query failed');
list($name, $type, $size, $content) =   mysql_fetch_array($result);

header("Content-length:$size");
header("Content-type:$type");
header("Content-Disposition: attachment; filename=$name");

echo $content;
include 'Library/closedb.php';
exit;
}

感谢您的帮助。

表:

   CREATE TABLE IF NOT EXISTS `filetble` (
   `id` int(11) NOT NULL AUTO_INCREMENT,
   `name` varchar(50) NOT NULL,
  `type` varchar(20) NOT NULL,
  `size` int(11) NOT NULL,
  `content` mediumblob NOT NULL,
  UNIQUE KEY `id` (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=13 ;

1 个答案:

答案 0 :(得分:5)

您回忆的不仅仅是文档的内容:您首先拥有:

echo $id;

只有这样你才有:

echo $content;

如果您回复的不仅仅是文档的内容,那么您很可能无法输出有效的word文档=>首先删除echo


如果这没有帮助,那么可以在以下位置查看(例如,使用十六进制编辑器):

  • 您希望获得的文件(数据库中content字段中的内容)
  • 以及您收到的实际内容

您可能会发现存在一些差异;例如,开头的空格?

如果没有区别......那么,您确定数据库中的内容是100%正确吗?