Я использую PHP Word & htmltodocx_converter для создания документа Word, все работает хорошо, но мне просто нужен пример того, как я могу отправить файл в браузер для загрузки без сохранения его на диске. Все примеры, я вижу, вы сохраняете файл на свой диск:
// Save File $h2d_file_uri = tempnam( "", "htd" ); $objWriter = PHPWord_IOFactory::createWriter( $phpword_object, "Word2007" ); $objWriter->save( $filename ); // At this line, I would like to output the file to the browser
Кто-нибудь знает, как я могу вывести файл в браузер на лету?
Этот пример ниже, возможно, работает, но чтобы получить ожидаемое поведение загрузки во всех браузерах, заголовок Content-Type
должен быть правильным для Word2007. Возможно, вам понадобятся дополнительные заголовки для правильного вывода.
Вы можете попробовать следующее:
$filename = "YOUR_Filename.docx"; header( "Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document" );// you should look for the real header that you need if it's not Word 2007!!! header( 'Content-Disposition: attachment; filename='.$filename ); $h2d_file_uri = tempnam( "", "htd" ); $objWriter = PHPWord_IOFactory::createWriter( $phpword_object, "Word2007" ); $objWriter->save( "php://output" );// this would output it like echo, but in combination with header: it will be sent
Благодаря @jamsandwich: правильным заголовком для Word 2007 должен быть application/vnd.openxmlformats-officedocument.wordprocessingml.document
.
Ссылка Microsoft