Вопрос по php, file, ms-word, html – Это не отвечает на вопрос. Это загрузит файл (включая другие параметры заголовка)

13

могу открыть и просмотреть.doc расширение файла в моем браузере? Файл находится на моем сервере.

Ваш Ответ

6   ответов
1
$file = "$file_name.doc";
$len = filesize($file); // Calculate File Size
ob_clean();
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:application/zip"); // Send type of file
$header="Content-Disposition: attachment; filename=$patient_name.zip;"; // Send File Name
header($header );
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".$len); // Send File Size
@readfile($file);
6
<a href="foo.doc">…</a>

Вам понадобится браузер с установленным плагином для документов Office. Я полагаю, что по умолчанию Microsoft Office установит его как минимум для Internet Explorer.

Если вы хотите работать без плагина, то вам нужно будет конвертировать документ в другой формат - HTML для максимальной совместимости. Это не тривиальная операция, особенно для сложных документов (или даже тех, которые содержат изображения).

4

Office Web Viewer оказание услуг.

Если ваши документы хранятся в интранете, вы можете использоватьВеб-приложения Microsoft Office Сервер. Это позволяет пользователям просматривать документы Word, PowerPoint, Excel через браузер.

как насчет файла, защищенного паролем? Я имею в виду мой файл документации, доступный после входа в систему. Mohsen Zia
17

Два варианта: во-первых, просто ссылку на него, например,<a href="MyWordDocument.doc">My Word Document</a>Второе - использовать iframe и указать его на документе. Однако, чтобы это работало, большинство браузеров требует, чтобы сервер отправлялContent-disposition: inline заголовок с документом. Если вы не можете настроить свой веб-сервер для этого, вы можете обернуть документ в немного php:

<?php
header('Content-disposition: inline');
header('Content-type: application/msword'); // not sure if this is the correct MIME type
readfile('MyWordDocument.doc');
exit;

А затем ссылка на этот скрипт вместо вашего слова документа.

Это не гарантированно работает, хотя; заголовок размещения контента - это просто подсказка, и любой браузер может все равно рассматривать его как вложение.

Также обратите внимание, что .doc не совсем переносимый; По сути, вам нужно, чтобы Word правильно отображал его (Open Office и несколько других приложений с открытым исходным кодом делают достойную работу, но пока не совсем готовы), и браузер должен поддерживать открытие Word в качестве плагина.

Если требования к формату файла .doc не установлены, лучше выбрать PDF (преобразование обычно так же просто, как распечатать его на PDF-принтере, скажем, CutePDF из Word), или, возможно, вы даже можете преобразовать документ в HTML (хотя пробег может отличаться).

Это правда, что открытый офис не на 100% точен при отображении.doc файлы, но то же самое можно сказать и о MS-Word. У меня была примерно одинаковая частота отказов для обоих; Это.doc Формат, который является проблемой. ctrl-alt-delor
как я могу создать что-то редактируемое, как когда-то открытое, если кто-то вносит изменения в то, что оно обновляется на сервере? PHP Avenger
0
//Edit
$header="Content-Disposition: attachment; filename=$file_name.doc;"; // Send File Name
Это не отвечает на вопрос. Это загрузит файл (включая другие параметры заголовка) Dut A.
Спасибо за отзыв и предложенное решение. Я уверен, что ОП был бы признателен за некоторую разработку того, как использовать это и что он делает. Felix Frank
3

Вы можете использовать Google Docs вместо этого, поскольку это бесплатно и надежно. Вы можете назначить свой путь к файлу для iframe.

например iframe1.Attributes.Add ("Src", "http://docs.google.com/gview?url=http://YOUR_FILE_PATH& Вкладывается = истина ");

view.officeapps.live.com/op/view.aspx?src=<Document Расположение> <- версия Microsoft Digital Human
Очень хорошо! Я этого не знал. Digital Human

Похожие вопросы