2009-05-01 3 views
0

Gibt es eine Bibliothek oder eine gute Dokumentation irgendwo auf dem besten Weg, um zuverlässig Dokumente in einem Benutzer-Browser unabhängig von Betriebssystem und Browser zu liefern. Ich schaue hauptsächlich auf PDF, Office (2003 & 2007) und gescannte Bilder (.tiff). Es scheint, dass Sie immer verschiedene Header festlegen müssen, abhängig vom Browser und dem Typ des Dokuments, das geliefert wird. Gerade jetzt:PHP - zuverlässige Lieferung von Dokumenten inline zum Browser

header("Content-Type: $type"); 
header("Content-Disposition: inline; filename=$name"); 
header("Accept-Ranges: bytes"); 
header("Content-Length: $size"); 
header("Expires: 0"); 
header("Cache-Control: private"); 

Scheint am häufigsten für IE aber nicht immer für FF zu arbeiten.

+3

Sie möchten den Browser zwingen, diese Dateien anzuzeigen? Es tut mir leid zu sagen, dass dies nicht möglich ist, wie Sie wollen. Der Browser entscheidet, was mit bestimmten Dateitypen zu tun ist, und oft kann der Benutzer dem Browser mitteilen, was zu tun ist (wie in FF). Zum Beispiel habe ich festgelegt, dass PDF-Dateien immer mit meinem bevorzugten PDF-Viewer geöffnet werden, anstatt sie im Browser anzuzeigen. –

+0

Mein Problem ist, ich bin nicht 100% sicher, was in den Header gehen muss, um das Dokument inline erscheinen zu lassen, wenn überhaupt möglich. Es scheint mir, dass es eine Art magische Kombination gibt, die basierend auf dem Dateityp benötigt wird, um inline angezeigt zu werden. Wenn der Benutzer das System so eingestellt hat, dass er ein PDF in Acrobat oder Vorschau öffnet, geht es mir gut ... Ich möchte nur, dass sie nicht herunterladen müssen ... nach der Datei suchen ... dann öffnen Sie sie, wenn sie es ist alles möglich. – Jason

Antwort

0

Ich denke, der Code, den Sie haben, ist wahrscheinlich darüber, was es dauern wird. Das Problem ist, dass Sie für jeden Browser eine Variante dieses Codes benötigen. Sie werden also mit einer ziemlich komplizierten Browser-Erkennungsbibliothek mit einer Reihe von Spezialfällen konfrontiert.

Wenn Inlining wirklich wichtig für Sie ist, würde ich in Betracht ziehen, sie auf ein webfreundlicheres Format auf dem Server zu rippen und nur das zu bedienen. Sie können immer einen "Download" -Link unten für die Quelldatei hinterlassen. Imagemagick kann die meisten Formate in .png/.gifs konvertieren, und Sie könnten so etwas wie pdftohtml verwenden, um die PDFs zu rippen. Es gibt einige Bibliotheken, die das auch für Word-Dokumente tun werden, obwohl die, die Google sofort bei mir ausspuckte, nicht frei waren.

Verwandte Themen