PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [PHP] Problem mit Firefox, iFrame und PDF


Popopinsel
2009-08-05, 11:52:41
Hallo zusammen,

ich versuche gerade, ein PDF-Dokument in einem iFrame im Firefox anzuzeigen.

Es klappt wunderbar, wenn das Dokument im selben Verzeichnis wie die php-Datei liegt:
<iframe frameborder="0" width="100%" height="100%" src="chart_en.pdf"></iframe>

Allerdings möchte ich die PDF's woanders abspeichern, in diesem Fall auf einem Netzlaufwerk:
<iframe frameborder="0" width="100%" height="100%" src="Y:/pdf/chart_en.pdf"></iframe>

Dann allerdings bekomme ich von Firefox folgende Fehlermeldung:
Firefox weiß nicht, wie diese Adresse geöffnet werden soll, da das Protokoll (y) mit keinem Programm verknüpft ist.

Habs auch schon mit src="file:///Y:/pdf/chart_en.pdf"versucht, aber dann wird gar nichts angezeigt.

Hoffe Ihr könnt mir helfen!

Kinman
2009-08-05, 13:21:40
Wenn Du es von einem lokalen Datenträger haben willst, dann musst du anstelle / ein \ machen. (Sofern es sich hier um Windows handelt). Im übrigen hat das nichts mit PHP zu tun.

mfg Kinman

Gast
2009-08-05, 13:30:41
<iframe frameborder="0" width="100%" height="100%" src="Y:/pdf/chart_en.pdf"></iframe>
epic fail!

Popopinsel
2009-08-05, 13:48:30
Wenn Du es von einem lokalen Datenträger haben willst, dann musst du anstelle / ein \ machen. (Sofern es sich hier um Windows handelt). Im übrigen hat das nichts mit PHP zu tun.

mfg Kinman

Hat leider nichts gebracht... :(

Kinman
2009-08-05, 14:00:47
Was kommt für eine Meldung?


<iframe frameborder="0" width="100%" height="100%" src="file://Y:\pdf\chart_en.pdf"></iframe>


Sollte eigentlich schon funktionieren, habs selbst auch kurz getestet...

epic fail!

Hilft natürlich sehr weiter....

Popopinsel
2009-08-05, 14:33:31
Es kommt gar keine Meldung, die PDF wird einfach nicht angezeigt.

Der Vollständigkeit halber poste ich mal den kompletten Code der Seite. Es geht eigentlich darum, einen Ordnerinhalt auf vorhandene PDF-Dokumente zu überprüfen, diese in einer Textdatei aufzulisten und schließlich abwechselnd im iFrame darzustellen:
<html>
<head>
<title></title>
<?php
$source='C:/xampp/htdocs/php/files.txt'; // Die Datei mit den Dateinamen der PDFs
$interval=5; // Wechselintervall in Sekunden
$pfad='Y:/pdf'; //Pfad zu den PDFs
$pfadx=$pfad;
$pfadx.='/';
$verz=opendir($pfad);

@unlink ($source); //vorhandene files.txt ggf. löschen

while ($file = readdir ($verz))
{
if($file != "." && $file != "..")
{
if(is_file($pfadx . $file))
file_put_contents ($source, $file."\r\n", LOCK_EX | FILE_APPEND); //Ordnerinhalt in Datei schreiben
}
}
closedir($verz);

if(isset($_GET['url']))
$i = $_GET['url'];
else $i = 0;

$url = array();
if(file_exists($source))
{
$handle = fopen($source,"r");
while(!feof($handle))
$url[] = fgets($handle,300);
fclose($handle);
}

$index = $i;
if($i > sizeof($url)-3)
$i = 0;
else $i++;

echo "<meta http-equiv=\"refresh\" content=\"".$interval.";?url=".$i."\">\n";
?>
</head>

<body style="padding:0; margin:0;">
src="file://Y:\pdf\<?php echo $url[$index]; ?>" //Lass ich mir zur Fehlersuche einblenden
<iframe frameborder="0" width="100%" height="100%" src="file://Y:\pdf\<?php echo $url[$index]; ?>"></iframe>
</body>

</html>

Die Seite läd wie sie soll im angegebenen Intervall neu und auch die Ausgabe am Ende, um mir die src-Zeile anzuzeigen, enstpricht Deiner Formatierung. Die Seite bleibt übrigens auch leer, wenn ich den Dateinamen fest in den iFrame schreibe.

Kinman
2009-08-05, 14:46:10
Hast du das schon in einem anderen Browser probiert?

Popopinsel
2009-08-05, 15:07:24
Ja, im IE6 wird die PDF angezeigt, aber hier funktioniert die Schleife nicht, sodass nach dem Intervall das selbe Dokument erneut geladen wird.

Also es funktioniert ja im FF, sobald ich im iFrame-Tag das file://Y:\pdf\ wegnehme und sich die PDF-Dateien im selben Ordner wie die PHP befinden (dann aber nur mit / anstatt \, d.h. mit src="pdf/<?php echo $url[$index]; ?>" funkioniert die Anzeige und auch die Schleife). Nur sobald ich einen Laufwerksbuchstaben angebe (durch Letter und Doppelpunkt), dann interpretiert der FF das als ein Protokoll.

The_Invisible
2009-08-05, 16:34:58
naja, das ist dann eher ein browserproblem mit den verschiedenen pfadanforderungen.

ansonsten könntest die pdfs ja mit einem php script reinstreamen welches halt über einem einfachen pfad zu erreichen ist.

mfg

Popopinsel
2009-08-05, 17:24:29
Gut, dass ich da nicht die leisteste Ahnung habe, wie ich das bewerkstelligen soll... ^^

Sephiroth
2009-08-05, 17:52:54
Firefox lässt den direkten Zugriff auf lokalen Dateien aus dem Internet nicht zu.
Wenn die Webseite also von einem Webserver angezeigt wird, dann geht es nicht. Aber es geht, wenn man die Webseite als HTML abspeichert und sie mit dem Browser öffnet.

Der IE8 (IE7?), Opera und jeder andere nur halbwegs vernünftige Browser macht es auch so.

Popopinsel
2009-08-12, 09:36:11
Habs jetzt hinbekommen, es geht nur einfach nicht wenn die PDFs auf einem Netzlaufwerk liegen, da der FF bei einem Laufwerksbuchstaben ein Protokoll erwartet (vermutlich wegen dem Doppelpunkt). Ich belasse die Dateien jetzt einfach in einem Unterordner und der wird im Netz frei gegeben.