php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 13.05.2005, 11:38  
Gast
 
Beiträge: n/a
Standard Problem mit Header Content-Disposition und Ausführungszeit

Hallo,

folgenden Beispielcode von http://de.php.net/manual/de/function.header.php benutze ich in kaum abgeänderter Form:

Code:
<?php
// Wir werden eine PDF Datei ausgeben
header("Content-type: application/pdf");

// Es wird downloaded.pdf benannt
header("Content-Disposition: attachment; filename=downloaded.pdf");

// Die originale PDF Datei heißt original.pdf
readfile('original.pdf');
?>
Das funktioniert auch grundsätzlich, wenn aber die Datei etwas größer ist (bzw. der Download aus anderen Gründen länger dauert), wird die Datei um 155 Byte größer, als das Original, denn dem Inhalt der Datei wird folgende Fehlermeldung angehängt:

Code:
Fatal error:  Maximum execution time of 30 seconds exceeded in m:\htdocs\sites\klingelnberg\de\kimos\test.php on line 11 
Trotzdem läuft der Download bis zum Ende durch und bis auf die letzten 155 Byte ist die Datei auch in Ordnung.
Wenn ich vor der Headerausgabe ein
Code:
set_time_limit(0);
einfüge, ist erwartungsgemäß alles in Ordnung, das kann ich aber leider nur im Testsystem so machen, im Produktivsystem ist der safe_mode eingeschaltet, da hat set_time_limit dann natürlich keine Auswirkung.
Nun die Frage, was kann man da machen? Meine Maximum execution time ist auf 30 Sekunden beschränkt, aber die Dateien sind durchweg um die 70-200MB groß und die Verbindungsgeschwindigkeit der jeweiligen Clients kann ja auch variieren... gibt's da einen einfach Trick (oder auch einen schwierigen)?
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 13.05.2005, 11:40  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

schau dir vieleicht mal:

www.php.net/fpassthru

an das gibt direkt weiter ohne den schreibpuffer von php zu verwenden.

mfg
robo47
robo47 ist offline  
Alt 13.05.2005, 13:16  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von robo47
an das gibt direkt weiter ohne den schreibpuffer von php zu verwenden.
Nicht wirklich, es schreibt genau wie readfile() in den Ausgabepuffer.
Nur, dass ich so noch ein zusätzliches fopen() brauche.
Und das Ergebnis ist leider exakt das gleiche.
 
Alt 13.05.2005, 13:24  
Gast
 
Beiträge: n/a
Standard Re: Problem mit Header Content-Disposition und Ausführungsze

Zitat:
Zitat von brombert
Das funktioniert auch grundsätzlich, wenn aber die Datei etwas größer ist (bzw. der Download aus anderen Gründen länger dauert), wird die Datei um 155 Byte größer, als das Original, denn dem Inhalt der Datei wird folgende Fehlermeldung angehängt:

Code:
Fatal error:  Maximum execution time of 30 seconds exceeded in m:\htdocs\sites\klingelnberg\de\kimos\test.php on line 11 
Trotzdem läuft der Download bis zum Ende durch und bis auf die letzten 155 Byte ist die Datei auch in Ordnung.
Versuch mal das (ungetestet):
PHP-Code:
<?php

# Fehlerausgabe unterdücken
error_reporting(0);

// Wir werden eine PDF Datei ausgeben
header("Content-type: application/pdf");

// Es wird downloaded.pdf benannt
header("Content-Disposition: attachment; filename=downloaded.pdf");

// Die originale PDF Datei heißt original.pdf
readfile('original.pdf');
?>
 
Alt 13.05.2005, 13:27  
Gast
 
Beiträge: n/a
Standard

Ok, Asche auf mein Haupt
Es funktioniert, mit @readfile(...) wird die Fehlermeldung unterdrückt.
Ich war mir sooo sicher, dass ich das in den letzten 2 Tagen mindestens einmal versucht hab,
aber dem war wohl nicht so
Vielen Dank für deine Hilfe robo47
 
Alt 13.05.2005, 13:29  
Gast
 
Beiträge: n/a
Standard

@meikel

Da warst du schneller, macht ja im Grunde das gleiche, danke!

Meine Mutti sagt immer "doof bleibt doof, da helfen keine Pillen" :wink:
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
header Problem Shyne PHP Tipps 2008 9 18.02.2008 08:55
header() ??? TeazY PHP Tipps 2008 9 11.01.2008 15:40
header (location:datei.php)-> problem bei frameseiten suendesizer PHP Tipps 2005 4 16.02.2005 07:42
Problem mit header PHP-Fortgeschrittene 1 09.02.2005 23:10
header problem aircrash PHP Tipps 2005 13 20.01.2005 23:04
[Erledigt] Sicherstellen von unkomprimiertem Content PHP-Fortgeschrittene 9 08.12.2004 12:47
problem mit header PHP Tipps 2004 16 20.10.2004 13:57
header (Location - Problem PHP Tipps 2004 4 20.10.2004 02:01
header problem Sclot PHP Tipps 2004 2 07.10.2004 14:55
problem mit header PHP Tipps 2004 4 06.10.2004 17:19
[Erledigt] ZIP Download - Header Problem PHP-Fortgeschrittene 1 19.08.2004 02:41
header ("location: ") Problem PHP Tipps 2004 3 18.08.2004 12:03
header problem PHP Tipps 2004 8 08.08.2004 00:35
Problem mit Header und $HTTP_REFERER PHP Tipps 2004 4 11.07.2004 12:21
Problem mit header() PHP Tipps 2004 6 13.06.2004 16:14

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
content disposition header php, header content-disposition fehlermeldung, php header content-disposition: attachment; funktioniert nicht, php file download execution time readfile, wenn pdf header attachment, php set_time_limit geschwindigkeit, content-disposition: attachment#

Alle Zeitangaben in WEZ +2. Es ist jetzt 13:40 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.