php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 22.10.2009, 01:27  
Benutzer
 
Registriert seit: 05.01.2009
Beiträge: 32
BlakkCooper ist zur Zeit noch ein unbeschriebenes Blatt
Standard Datei Download

Ich habe folgendes Script für eine Dateidownload geschrieben.

Code:
set_time_limit(0);

header('Content-Disposition: attachment; filename="'.basename($file).'"');
header('Content-Type: application/octet-stream');
header('Accept-Ranges: bytes');
header('Content-Transfer-Encoding: binary');
header('Content-Length: '.filesize($file));

$res = fopen($file, "r");
while(!feof($res))
	{
	echo fread($res, 8192);
	flush();
	}
fclose($res);
Das ganze funktioniert auch soweit nur mit einem Unterschied: wenn ich einen normalen Download starte dann wird der Speichern-Dialog sofort geöffnet und ich kann sagen wohin die Datei gespeichert wird und dann läd der Browser die Datei runter. Wenn ich das mit meinem Script mache, dann kommt dieser Dialog erst NACHDEM er die Datei komplett empfangen hat. Bei 100kb mag das ja angehen aber nicht bei einer 300mb Datei. Was mache ich falsch?!
BlakkCooper ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 22.10.2009, 01:58  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Ich glaube das ist normales Verhalten.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 22.10.2009, 02:21  
Benutzer
 
Registriert seit: 05.01.2009
Beiträge: 32
BlakkCooper ist zur Zeit noch ein unbeschriebenes Blatt
Standard

1. Wenn es normales Verhalten ist, warum sind die beiden Verhalten dann unterschiedlich? Kann ja nur eines normal sein.
2. Außerdem denke ich nicht, dass es normal ist, dass der Webbrowser erst hunderte megabyte läd UND DANN fragt wohin damit.
BlakkCooper ist offline   Mit Zitat antworten
Alt 22.10.2009, 04:24  
Benutzer
 
Registriert seit: 05.01.2009
Beiträge: 32
BlakkCooper ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hab das Problem gefunden: hatte nen ob_start() drinne.
BlakkCooper ist offline   Mit Zitat antworten
Alt 22.10.2009, 09:05  
Erfahrener Benutzer
 
Registriert seit: 05.02.2009
Beiträge: 1.401
PHP-Kenntnisse:
Fortgeschritten
Destruction ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zusätzlich würde ich auch fopen gegen readfile austauschen.
__________________
"Dummheit redet viel..Klugheit denkt und schweigt.." [Amgervinus]
Destruction ist offline   Mit Zitat antworten
Alt 22.10.2009, 11:54  
Erfahrener Benutzer
 
Registriert seit: 30.07.2008
Beiträge: 1.167
PHP-Kenntnisse:
Fortgeschritten
xm22 sorgt für eine eindrucksvolle Atmosphärexm22 sorgt für eine eindrucksvolle Atmosphärexm22 sorgt für eine eindrucksvolle Atmosphäre
Standard

Das flush braucht man auch nicht.
xm22 ist offline   Mit Zitat antworten
Alt 22.10.2009, 14:19  
Benutzer
 
Registriert seit: 05.01.2009
Beiträge: 32
BlakkCooper ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Zitat von Destruction Beitrag anzeigen
Zusätzlich würde ich auch fopen gegen readfile austauschen.
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 366993409 bytes) in .../getfile.php on line 45

Toller Trick!
BlakkCooper ist offline   Mit Zitat antworten
Alt 22.10.2009, 14:56  
Erfahrener Benutzer
 
Registriert seit: 05.02.2009
Beiträge: 1.401
PHP-Kenntnisse:
Fortgeschritten
Destruction ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Zitat von BlakkCooper Beitrag anzeigen
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 366993409 bytes) in .../getfile.php on line 45

Toller Trick!
OK. BlakkCooper du bist offiziell auf meiner "Blacklist". Wer solche unfreundlichen/dummen posts macht hat es nicht verdient Hilfe zu bekommen.
__________________
"Dummheit redet viel..Klugheit denkt und schweigt.." [Amgervinus]
Destruction ist offline   Mit Zitat antworten
Alt 22.10.2009, 14:57  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
1. Wenn es normales Verhalten ist, warum sind die beiden Verhalten dann unterschiedlich? Kann ja nur eines normal sein.
SInd doch zwei grundlegend verschiedene Dinge, wieso sollte ein Browser die nicht nach Gutdünken anders behanden können dürfen?
Zitat:
Hab das Problem gefunden: hatte nen ob_start() drinne.
Immer wieder schön, wenn wir auf Basis von Traumcode reale Probleme finden sollen.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 22.10.2009, 15:20  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nett
Standard

Zitat:
Zitat von BlakkCooper Beitrag anzeigen
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 366993409 bytes) in .../getfile.php on line 45

Toller Trick!
Side effect...

readfile() versucht leider, die gesamte Datei einzulesen und durchzuschleifen, soll heissen, deine Lösung ist für sehr große Dateien tatsächlich zu bevorzugen (allerdings solltest du das Zeitlimit für den Request dann im Script auch entsprechend anpassen)

Ich empfehle noch das Studium der user contributed notes
PHP: readfile - Manual
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline   Mit Zitat antworten
Antwort


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
Upload script datei type falsch erkannt Marti95. PHP Tipps 2009 27 14.09.2009 15:32
Datei per Buttonklick runterladen... go1denboy PHP Tipps 2008 7 14.06.2008 20:25
Datei zum Download bereitstellen niels$ PHP Tipps 2008 6 17.02.2008 23:21
Großer Baum -> Große Datei -> Hohe Ladezeit :( PsychoEagle PHP Tipps 2008 7 22.09.2007 12:44
Automatisch generierte Datei nach Download löschen querfisch PHP Tipps 2007 2 10.04.2007 19:22
Datei zeigen, aber nicht zum Download freigeben CSS PHP-Fortgeschrittene 17 12.01.2006 17:30
Probleme mit dem Download von CSV solitaer PHP-Fortgeschrittene 0 05.09.2005 13:57
Datei auf FTP-Server ändern ohne lokal abzuspeichern faux PHP-Fortgeschrittene 11 02.09.2005 11:54
Ordner Struktur auslesen bestimmte datei finden .... silverghost PHP Tipps 2005 3 24.05.2005 13:55
datei download PHP Tipps 2005 5 28.01.2005 15:46
Datei Download von der Webpage PHP Tipps 2004-2 6 30.11.2004 12:25
Datei nach download löschen? Calli PHP Tipps 2004-2 1 26.11.2004 10:05
Datei mit php erzeugen Stümper PHP Tipps 2004 4 12.10.2004 12:51
php und ftp PHP Tipps 2004 4 07.10.2004 09:58
[Erledigt] .txt Datei verlinken für Download... 18inch HTML, Usability und Barrierefreiheit 6 27.06.2004 10:48

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php readfile allowed memory size, normales solitär download, readfile allowed memory size of, readfile allowed memory size exhausted, normales solitär, readfile allowed memory size, http://www.php.de/php-fortgeschrittene/60347-datei-download.html, php readfile allowed memory size exhausted, php readfile \bytes exhausted\, readfile exhausted, php readfile memory exhausted, php datei download header grosse dateien, normales solitär downloaden, allowed memory size of 134217728 bytes exhausted, normales solitaire download, php file download allowed memory size exhausted, blakkcooper, php dateidownload readfile, wohin lädt kino.to dateien, getfile php alle dateien downloaden

Alle Zeitangaben in WEZ +2. Es ist jetzt 22:19 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