PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zerstückelte PDF Dateien


RLO
10.11.2003, 13:51:30
Zustand:
Ich habe einen Server mit folgender Konfiduration:
Windows 2000 / Foxserv / Apache2.0.39 (WIN32) / PHP4.2.2 / MySQL / ODBC

Dieser Server läuft nur im Intranet als Webserver.

Alle Daten (Datenbankinhalte, Grafiken, Links) werden korrekt angezeigt.



Fehlerbeschreibung:

Ich klicke auf einen Link zu einer PDF Datei. Der Browser öffnet ein neues Fenster, das Plugin wird gestartet. Bis hierher ist alles OK.

Manche Dateien werden sofort angezeigt, andere nur zum Teil und wieder andere überhaupt nicht. Da gibt es ein leeres Fenster zu sehen.

Ein Test über ein Laufwerksmapping hat ergeben dass alle PDF Dateien direkt geladen werden können und somit nicht defekt sein können.


Wer hat den selben oder einen ähnlichen Fehler und schon eine Lösung gefunden ??????????

DRINGEND

RLO
12.11.2003, 16:07:57
Ich habe das Problem gelöst.
Irgendwo im WWW habe ich einen kleinen php-Code entdeckt.


<?php
if (isset($Filename))
{
$Filename=urldecode($Filename);
if (strstr($HTTP_USER_AGENT, "MSIE"))
{
$attachment = "attachment;";
}
else
{
$attachment="";
}
header(Content-Type: application/octet-stream");

header("Content-Disposition:$attachment filename="".basename($Filename).""");

header(Content-type: application/force_download");

header(Content-Transfer-Encoding: binary");

header(Content-lenght: " . filesize($Filename) . "n");

readfile ($Filename);
}
?>

Dieser Code wir als eigene Seite, zum Beispiel als "download_datei.php" gespeichert. Wenn diese Seite aufgerufen werden soll, erstellt man einen Link der folgendermaßen aussieht: <a href="download_datei.php?Filename=DATEIVARIABLE">Link</a>

Das Script zwingt dazu, dass zum Beispiel eine PDF Datei nicht direkt mit dem BrwoserPlugIn geöffnet wird, sondern zuerst die Öffnen/Speichern Alert erscheint. Auch wenn man auf Öffen Klickt wird die Datei zuerst ins Temp Verzeichnis kopiert und dann das passende Programm, hier der Acrobat Reader, gestartet.

Wenn es jemand gebrauchen kann, ich weiß nicht mehr wo ich das gefunden habe. Es stand leider auch kein Hinweis auf den Programmierer drin.