在php下载后无法打开.doc文件

时间:2012-03-30 20:50:32

标签: php ms-word doc

我有一个用php下载文件的脚本,效果很好。但是当我下载一个.doc类型的文件并在MS Word中打开它时,它说我必须选择一种编码,大多数文本都采用这种格式:

--- L ß{ ß{ Gü ² ÿÿ ÿÿ ÿÿ • Ê Ê ( ( Ð Ð Ð Ä ÿÿÿÿ ”¬ ”¬ ”¬ ”¬ T. èM ” ”- â |W ’W ’W ’W ’W ý÷ ý÷ ý÷ è ---

这是我的标题:

header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Type: $mtype");
header("Content-Disposition: attachment; filename=\"$newFile\"");
header("Content-Transfer-Encoding: binary");
header("Content-Length: " . $fsize);
$mtype  = application/msword

1 个答案:

答案 0 :(得分:3)

您必须添加header('Content-type: application/octet-stream');

不确定$mtype = application/msword应该做什么......

header("Content-Disposition: attachment; filename=\"$newFile\"");更改为header('Content-Disposition: attachment; filename="'.$newFile'."');

标题后使用:

ob_clean();
ob_end_flush();
readfile($file_path);
exit;