2010-12-03 31 views

Répondre

17

Deux options: La première consiste simplement à lier, p. Ex. <a href="MyWordDocument.doc">My Word Document</a>, la seconde consiste à utiliser un iframe et le pointer vers le document. Pour que cela fonctionne, cependant, la plupart des navigateurs exigent que le serveur envoie un en-tête Content-disposition: inline avec le document. Si vous ne pouvez pas configurer votre serveur Web pour le faire, vous pouvez envelopper le document dans un peu de php:

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

Et vous redirigent ensuite à ce script au lieu de votre document Word.

Cependant, cela n'est pas garanti; l'en-tête content-disposition est juste un indice, et n'importe quel navigateur peut choisir de le traiter comme une pièce jointe de toute façon.

Notez également que .doc n'est pas exactement portable; Fondamentalement, vous avez besoin de Word pour l'afficher correctement (Open Office et quelques autres applications Open Source font un travail décent, mais ils ne sont pas encore là), et le navigateur doit prendre en charge l'ouverture de Word en tant que plugin. Si le format de fichier .doc n'est pas figé, PDF serait un meilleur choix (la conversion est généralement aussi simple que l'impression sur une imprimante PDF, disons, CutePDF, à partir de Word), ou peut-être vous pouvez même convertir le document en HTML (le kilométrage peut varier).

+1

Il est vrai que Open Office n'est pas 100% précis à l'affichage des fichiers '.doc', mais on peut en dire autant de MS-Word. J'ai eu à peu près le même taux d'échec pour les deux; C'est le format '.doc' qui pose problème. –

6
<a href="foo.doc">…</a> 

Vous aurez besoin d'un navigateur avec un plugin pour les documents Office installés. Je crois que Microsoft Office en installera un pour au moins Internet Explorer par défaut.

Si vous voulez travailler sans plugin, vous devrez convertir le document en un autre format - HTML pour une compatibilité maximale. Ce n'est pas une opération triviale, en particulier pour les documents complexes (ou même ceux qui ne contiennent que des images).

3

Si votre fichier .doc est accessible en ligne, vous pouvez essayer le service Office Web Viewer.

Si vos documents sont stockés dans l'intranet, vous pouvez utiliser le serveur Microsoft Office Web Apps. Il permet aux utilisateurs de visualiser des documents Word, PowerPoint, Excel via un navigateur.

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); 
0
//Edit 
$header="Content-Disposition: attachment; filename=$file_name.doc;"; // Send File Name 
+4

Merci pour les commentaires et la solution proposée. Je suis certain que le PO aimerait que l'on explique comment l'utiliser et ce qu'il fait. –

+2

Cela ne répond pas à la question. Cela va télécharger le fichier (avec d'autres paramètres d'en-tête inclus) – Dadani

3

Vous pouvez utiliser à la place google docs comme il est gratuit et fiable Vous pouvez assigner votre chemin de fichier à iframe.

par exemple. iframe1.Attributes.Add ("Src", "http://docs.google.com/gview?url=http://VOTRE_FILE_PATH & embedded = true");

+0

Très agréable! Je ne le savais pas. –

+0

http://view.officeapps.live.com/op/view.aspx?src=<- Version Microsoft –