Forenindex » Programmierung/Entwicklung » PHP und MySQL » IE und PDF-Download-Dialog

IE und PDF-Download-Dialog

Tömsken
Beiträge gesamt: 720

2. Jun 2004, 14:32
Bewertung:

gelesen: 5128

Beitrag als Lesezeichen
Salut allseits...

Ich möchte, dass sich beim klicken auf einen Button bzw. Link zunächst der System-eigene "Öffnen, Speichern, Abbrechen"-Dialog öffnet. Das klappt mit Mozilla, aber Acrobat kommentiert das Öffnen nach IE 6 Vorarbeit mit "There was an error opening this document. This file cannot be found." Nun meine ich, so ziemlich jeden Trick schon ausprobiert zu haben, weiß aber auch, dass noch mind. einer fehlt. Kennst Du den vielleicht?


---- meine Experimente: ---------

$size = filesize($pdfFilename);
$filename = basename($pdfFilename);

@ob_end_clean();
if ( @ini_get('zlib.output_compression') ) @ini_set( 'zlib.output_compression', 'Off' );
@ini_set( 'session.cache_limiter', '' );

if (SSL) header( "Pragma: " ); else header( "Pragma: public" );
header( "Content-Transfer-Encoding: none" );
header( 'Cache-Control: public' );
header( "Cache-Control: no-store, no-cache, must-revalidate" );
header( "Cache-Control: post-check=0, pre-check=0", false );
header( "Pragma: no-cache" );
header( "Accept-Ranges: bytes" );
header( "Content-Transfer-Encoding: binary" );
header( "Content-Length: $size" );
header( "Expires: Mon, 26 Jul 1997 05:00:00 GMT" );
header( "Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT" );
header( "Content-Type: application/pdf" );
header( "Content-Disposition: attachment; filename=\"" . $filename . "\";" );
// header( "Content-Disposition: inline; filename=$filename;" );
}

@readfile( $pdfFilename );
exit;

IE und PDF-Download-Dialog

Wolfgang Reszel
Beiträge gesamt: 4170

2. Jun 2004, 15:17
Bewertung:

gelesen: 5128

Beitrag als Lesezeichen
Hallo,

also ich habe vor einiger Zeit auch geforscht, experimentiert und nachgefragt und ein eindeutiges Ergebnis erhalten: Es geht im IE einfach nicht.

Wolfgang

IE und PDF-Download-Dialog

Tömsken
Beiträge gesamt: 720

3. Jun 2004, 01:58
Bewertung:

gelesen: 5128

Beitrag als Lesezeichen
Hi Wolfgang,

tja, hoffendlich glaubt's der Kunde auch... ;)
Ich hab' noch mit einem Kollegen gesprochen, der so etwas mit ASP auf einem IIS realisiert hat; dort klappt's. Aber warum nur dort - mit LAMP war er auch erfolglos - konnte er mir nicht sagen.

Beste Grüße,
Tom

IE und PDF-Download-Dialog

SabineP
Beiträge gesamt: 7586

3. Jun 2004, 09:15
Bewertung:

gelesen: 5128

Beitrag als Lesezeichen
Halo Tom,

dann schau doch mal nach, wie der Header aussieht den der IIS mitsendet.

http://cgi.gmxhome.de/header.pl

Hier noch ein Link zum Thema:
http://www.akademie.de/...ownload-komfort.html

Gruß Sabine

(Dieser Beitrag wurde von SabineP am 3. Jun 2004, 09:28 geändert)

IE und PDF-Download-Dialog

oesi50
  
Beiträge gesamt: 2315

3. Jun 2004, 10:05
Bewertung:

gelesen: 5128

Beitrag als Lesezeichen
hi Tom,

verwende mal, AUSSCHLIESSLICH, diese beiden Headerzeilen:

content-disposition: attachment; filename=datei.pdf
Content-Type: application/octet-stream

und zwar in dieser Reihenfolge.

PS:
Content-Disposition ist nach RFC2616 kein gültiger Header für HTTP1.1
Hier hat Microsoft mal wieder ein eigenes Süppchen gekocht.
Dieser Header ist normalerweise nur für Mail vorgesehen.

Zitat:
Content-Disposition Issues

RFC 1806 [35], from which the often implemented Content-Disposition (see section 19.5.1) header in HTTP is derived, has a number of very serious security considerations.
Content-Disposition is not part of the HTTP standard, but since it is widely implemented, we are documenting its use and risks for implementors.
See RFC 2183 [49] (which updates RFC 1806) for details.


Grüße Oesi
Ich weiß, dass ich nichts weiß... (Sokrates)

(Dieser Beitrag wurde von oesi50 am 3. Jun 2004, 10:19 geändert)

IE und PDF-Download-Dialog

Tömsken
Beiträge gesamt: 720

3. Jun 2004, 14:06
Bewertung:

gelesen: 5128

Beitrag als Lesezeichen
Danke für Eure Tipps.
Aber... ;)

Auf http://www.dornbracht.de, "Service/ Download/ Programm-Informationen" klappt's. Folgendes wird dort zum Browser geschickt:

HTTP/1.1 200 OK
Server: Microsoft-IIS/5.0
Date: Thu, 03 Jun 2004 11:34:55 GMT
PICS-Label: (PICS-1.0 "http://www.rsac.org/ratingsv01.html" l by "info@webtop.de" on "2004.03.11T12:45+0100" exp "2030.03.11T12:00+0100" r (v 0 s 0 n 0 l 0))
X-AspNet-Version: 1.1.4322
Content-Disposition: attachment; filename=Belle-de-Bain-_de_..pdf
Set-Cookie: ASP.NET_SessionId=dmozb23v4osztgupumo2tfu1; path=/
Cache-Control: private
Content-Type: application/octet-stream
Content-Length: 259844

Meine Vorgaben dabei waren:
URL: http://www.dornbracht.de/.../mddload.htm?id=2022
Browser: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705; .NET CLR 1.1.4322)

(Oesi, Du lagst mit Deinem Vorschlag also ziemlich richtig.)

Ich hab' das per Header() "nachgebaut" - aber weiterhin erfolglos.

Tja...

IE und PDF-Download-Dialog

oesi50
  
Beiträge gesamt: 2315

3. Jun 2004, 14:24
Bewertung:

gelesen: 5128

Beitrag als Lesezeichen
ich habe diese Version jetzt mal zum Testen bereitgestell.

http://vsrv.de/...ples/phpdownload.php

Hier erhältst Du eine Datei datei.txt mit dem Quellcode.

Was mir bei Dir noch aufgefallen ist; der Dateiname darf nicht mit "" eingeschlossen sein. Die Codierung erfolgt hier nach RFC2184(MIME).

Grüße Oesi
Ich weiß, dass ich nichts weiß... (Sokrates)

(Dieser Beitrag wurde von oesi50 am 3. Jun 2004, 14:46 geändert)

IE und PDF-Download-Dialog

Tömsken
Beiträge gesamt: 720

3. Jun 2004, 14:38
Bewertung:

gelesen: 5128

Beitrag als Lesezeichen
Danke Dir, Oesi. Der Text-Datei-Download klappt - aber PDFs machen sich weiterhin unbeliebt.
> Der Dateiname darf nicht mit "" eingeschlossen sein.
Auch das habe ich bereits in mehreren Versionen ausprobiert - keine, einfache, doppelte Anführungsstriche, Semikolon danach ja/nein, ... ;)

IE und PDF-Download-Dialog

oesi50
  
Beiträge gesamt: 2315

3. Jun 2004, 14:55
Bewertung:

gelesen: 5128

Beitrag als Lesezeichen
ich hab hier auch noch eine pdf-Version für Dich:

http://vsrv.de/...ples/pdfdownload.php

Code
<?php 
header('content-disposition: attachment; filename=abbildungsvorschrift.pdf');
header('Content-Type: application/octet-stream');
@readfile('./abbildungsvorschrift.pdf');
?>


Grüße Oesi
Ich weiß, dass ich nichts weiß... (Sokrates)

Edit 15:07 der Dateipfad war falsch. Jetzt gehts.

(Dieser Beitrag wurde von oesi50 am 3. Jun 2004, 15:08 geändert)

IE und PDF-Download-Dialog

SabineP
Beiträge gesamt: 7586

3. Jun 2004, 15:12
Bewertung:

gelesen: 5128

Beitrag als Lesezeichen
Hi Tom,

habe mal die URL
http://www.dornbracht.de/.../mddload.htm?id=2022

im IE4 getestet (einen anderen IE hab ich gerade nicht zur Hand).

Fehlermeldung: Objektbehandlungsroutine fehlt. Es steht kein Viewer für diesen Objekttyp zur Verfügung.
Möchten Sie vom angegebenen Ort aus einen Viewer für dieses Objekt downloaden?

Bei Oesis Link kommt die gleiche Fehlermeldung.

Das PDF-Plugin ist natürlich installiert. Es klappt also auch nicht in allen IE-Browsern.

Gruß Sabine

(Dieser Beitrag wurde von SabineP am 3. Jun 2004, 15:17 geändert)

IE und PDF-Download-Dialog

Tömsken
Beiträge gesamt: 720

3. Jun 2004, 15:22
Bewertung:

gelesen: 5127

Beitrag als Lesezeichen
Sehr interessant...
Klappt!

Also mag Acrobat etwas an meinem "Umfeld" nicht. Nur was?
Ich hab' testweise z. B. auch schon mal das Session-Management deaktiviert, um sicherer zu sein, dass nix in den Header geschrieben wird. Aber würde dann das "Speichern" funktionieren?
Ich weiß nicht wirklich, wo ich suchen soll...

IE und PDF-Download-Dialog

Tömsken
Beiträge gesamt: 720

3. Jun 2004, 17:12
Bewertung:

gelesen: 5127

Beitrag als Lesezeichen
@Sabine

Diese Aussage hab' ich auch von dem Entwickler bekommen. Der erzählte von leicht unterschiedlichen Headern für IE 5.5 und IE 6; IE 4 wird von ihm nicht mehr unterstützt.

IE und PDF-Download-Dialog

Wolfgang Reszel
Beiträge gesamt: 4170

13. Jun 2004, 15:40
Bewertung:

gelesen: 5127

Beitrag als Lesezeichen
Hi,

ich glaub's nicht, klappt tatsächlich. Man lernt eben nie aus.

Wolfgang

IE und PDF-Download-Dialog

Anonym
Beiträge gesamt: 22827

30. Jun 2004, 23:39
Bewertung:

gelesen: 5127

Beitrag als Lesezeichen
Mit folgendem Code könnt ihr ein pdf im ie, mozilla....
direkt mit dem plugin öffnen. Falls keines installiert ist wird ein Download ausgelöst. Falls ihr nur downloaden wollt, ersetzt inline durch attachment:

die $ Variablen ergeben sich aus dem Kontext, sonst mailt:
anstetts@studi.informatik.uni-stuttgart.de

header('Pragma: public');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: pre-check=0, post-check=0, max-check=0');
header('Content-Transfer-Encoding: none');
header("Content-Disposition: inline; filename=$content");
header('Content-Type: application/pdf ');
readfile($filename);