Не могу открыть файл .doc после загрузки в php - PullRequest
1 голос
/ 31 марта 2012

У меня есть скрипт для загрузки файлов с помощью 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 Ответ

3 голосов
/ 31 марта 2012

Вы должны добавить 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;
...