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

Chr*_*ran 0 html javascript php

我可以上传和下载,但我下载的文件已损坏.我测试下载的文件类型是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;
}
Run Code Online (Sandbox Code Playgroud)

感谢您的帮助.

表:

   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 ;
Run Code Online (Sandbox Code Playgroud)

Pas*_*TIN 5

您回忆的不仅仅是文档的内容:您首先要这样:

echo $id;
Run Code Online (Sandbox Code Playgroud)

只有这样你才有:

echo $content;
Run Code Online (Sandbox Code Playgroud)

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


如果这没有帮助,一个想法是在下面看一下(例如使用十六进制编辑器):

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

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

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