Отправка файла .docx в браузер с помощью PHP - PullRequest
0 голосов
/ 18 февраля 2020

Я пытаюсь отправить файл 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 found unreadable content

Затем следует страшное «Word обнаружил ошибку при попытке открыть файл.»:

Word experienced an error trying to open the file

Как я уже сказал, файл Word открывается нормально и выгружается из ссылки нормально - я получаю эти ошибки только при попытке вывести файл Word с указанным выше кодом PHP.

Где этот код PHP идет не так?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...