Я пытаюсь отправить файл Word .docx
в браузер. Файл Word открывается нормально, если я создаю ссылку на файл Word, он также открывается нормально.
Однако при использовании этого кода:
// output the file to the browser
if ($fileToOutput) {
header("Content-Description: File Transfer");
header('Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Expires: 0');
header('Pragma: public');
//header('Content-Length: ' . filesize($fileToOutput)); // this is causing the file download to fail
header('Content-Type: application/octet-stream');
header("Content-Transfer-Encoding: Binary");
header("Content-disposition: attachment; filename=\"" . basename($fileToOutput) . "\"");
ob_clean();
flush();
readfile($fileToOutput);
exit;
}
Я получаю следующее:
Затем следует страшное «Word обнаружил ошибку при попытке открыть файл.»:
Как я уже сказал, файл Word открывается нормально и выгружается из ссылки нормально - я получаю эти ошибки только при попытке вывести файл Word с указанным выше кодом PHP.
Где этот код PHP идет не так?