我可以上传和下载,但我下载的文件已损坏。我测试下载的文件类型是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 ;
答案 0 :(得分:5)
您回忆的不仅仅是文档的内容:您首先拥有:
echo $id;
只有这样你才有:
echo $content;
如果您回复的不仅仅是文档的内容,那么您很可能无法输出有效的word文档=>首先删除echo
。
如果这没有帮助,那么可以在以下位置查看(例如,使用十六进制编辑器):
content
字段中的内容),您可能会发现存在一些差异;例如,开头的空格?
如果没有区别......那么,您确定数据库中的内容是100%正确吗?