php.de

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

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 10.05.2006, 17:20  
Neuer Benutzer
 
Registriert seit: 10.05.2006
Beiträge: 7
Harakiri81
Standard Download starten (header funktion), vorher Text ausgeben?

Hallo in die Runde,

bin neu hier...
Ich arbeite daran, einen Download einer Exe-Datei zu starten. Dies habe ich schon erreicht, durch die header() Funktion.

Code:
$file = "/pfad/datei.exe";
//Gather relevent info about file
$len = filesize($file);
$filename = basename($file);
$file_extension = strtolower(substr(strrchr($filename,"."),1));

//Begin writing headers
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Type: application/octet-stream");


//Force the download
$header="Content-Disposition: attachment; filename=".$filename.";";
header($header);
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".$len);
Nun habe ich aber zwei Probleme:
a) Datei ist 30 MB groß, es erscheint lange Zeit kein Feedback, der Browser lädt die Datei im Hintergrund herunter und bringt dann den Downloaddialog.
b) Ich kann aufgrund des Content-Type leider keinen Text ausgeben, sehe ich das richtig?

Kann ich...
a) ...erreichen, dass der Downloaddialog vor dem Download schon im Browser erscheint und dann auch Fortschrittsbalken usw?
b) ...vorher Text ausgeben? z.B. dass der Download länger dauern könnte? Evtl. den Download in eine weitere php-Datei auslagern?

Am schönsten wäre schon a). Da müsste doch was möglich sein oder?
Danke für jeden Anhaltspunkt.

Gruß,
Harakiri
Harakiri81 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 10.05.2006, 17:29  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.798
PHP-Kenntnisse:
Fortgeschritten
robo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblick
Standard

wie gibst du die datei aus ?
robo47 ist offline   Mit Zitat antworten
Alt 10.05.2006, 17:36  
Gast
 
Beiträge: n/a
Standard

...und bist Du sicher, dass Output-Buffering nicht aktiviert ist?
  Mit Zitat antworten
Alt 10.05.2006, 17:50  
Gast
 
Beiträge: n/a
Standard

Zitat:
der Browser lädt die Datei im Hintergrund herunter und bringt dann den Downloaddialog.
Also alle hier installierten Browser zeigen während des Herunterladens eine Fortschrittsanzeige - nicht erst hinterher.
Welchen Browser benutzt Du?
  Mit Zitat antworten
Alt 10.05.2006, 18:06  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Bruchpilot
Zitat:
der Browser lädt die Datei im Hintergrund herunter und bringt dann den Downloaddialog.
Also alle hier installierten Browser zeigen während des Herunterladens eine Fortschrittsanzeige - nicht erst hinterher.
Aber nur wenn der entsprechende Header gesetzt ist (ist er ja!). Aber auch
erst dann wenn Daten beim Client ankommen. Wenn der OP also seine 30 MB
Datei - woher auch immer - einliest und womöglich auch noch in den Ausga-
bepuffer lädt, darf der Benutzer wohl seine Zeit auf diese Fortschrittsanzeige
warten, da der Download ja faktisch noch nicht begonnen hat...
  Mit Zitat antworten
Alt 10.05.2006, 18:31  
Gast
 
Beiträge: n/a
Standard

Zitat:
Wenn der OP also seine 30 MB Datei - woher auch immer - einliest
Zitat:
$file = "/pfad/datei.exe";
Wenn das natürlich ein Netzwerkdateisystem über den Nordpol nach Timbuktu ist, kann sich das negativ auswirken.
  Mit Zitat antworten
Alt 10.05.2006, 18:42  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Bruchpilot
Zitat:
$file = "/pfad/datei.exe";
Wenn das natürlich ein Netzwerkdateisystem über den Nordpol nach Timbuktu ist, kann sich das negativ auswirken.
Ich merke schon: Erst einmal den Quelltext anschauen, kann nicht schaden...
  Mit Zitat antworten
Alt 10.05.2006, 18:44  
Gast
 
Beiträge: n/a
Standard

Aber es kann natürlich sein, dass OP die Pause zwischen Request und dem Beginn der Antwort meint.
Ich sehe nur keinen ...hm.. unvermeidlichen Grund dafür. Wenn der Server sich auspennt und erstmal einige Zeit "zum warm werden" braucht, würde auch eine Textausgabe nicht viel nutzen
  Mit Zitat antworten
Alt 11.05.2006, 08:25  
Neuer Benutzer
 
Registriert seit: 10.05.2006
Beiträge: 7
Harakiri81
Standard

Zitat:
Zitat von robo47
wie gibst du die datei aus ?
Code:
//Force the download
$header="Content-Disposition: attachment; filename=".$filename.";";
header($header);
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".$len);
Harakiri81 ist offline   Mit Zitat antworten
Alt 11.05.2006, 08:26  
Neuer Benutzer
 
Registriert seit: 10.05.2006
Beiträge: 7
Harakiri81
Standard

Zitat:
Zitat von karl-150
...und bist Du sicher, dass Output-Buffering nicht aktiviert ist?
Du meinst ob_start()? Nein, alles was ich oben gepostet habe, ist alles. Mehr steht in der Testdatei nicht drin.
Harakiri81 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
Externe Variable über eine Funktion ausgeben errox PHP Tipps 2008 3 14.04.2008 11:26
JavaScript/PHP: qooxdoo 0.7.1 - Teil 1 : Eine Einführung Zergling-new Tutorials 6 25.01.2008 10:41
CSS - Bild im div container überlappt andere container Buschdieb HTML, Usability und Barrierefreiheit 13 19.07.2007 23:17
mysql - text ausgeben dws PHP Tipps 2006 14 15.06.2006 22:50
header download MK0 PHP Tipps 2006 4 24.02.2006 23:30
Download automatisch starten nicobischof PHP Tipps 2007 1 26.11.2005 08:27
Text aus der DB verteilen PHP Tipps 2007 17 16.11.2005 12:04
Text ausgeben bis zum Zeilenumbruch Unbekanntes_Pferd PHP Tipps 2007 5 11.11.2005 09:07
PHP-GTK Tutorial Beitragsarchiv 9 02.11.2005 21:07
(schnellere) Funktion zum Zusammenfassen von CSS PHP-Fortgeschrittene 21 08.08.2005 16:47
[Erledigt] Link PHP Tipps 2005-2 10 20.07.2005 21:28
Tabelle in einer Funktion ausgeben PHP Tipps 2005 3 25.04.2005 23:08
[Erledigt] header - Funktion - Datei speichern PHP-Fortgeschrittene 3 03.02.2005 14:38
Funktion ausgeben PHP Tipps 2005 8 10.01.2005 17:18
download automatisch starten PHP Tipps 2004 7 18.09.2004 20:14

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php download starten, php datei download starten, download starten php, php download header, php header download starten, php header download, php text download, mit php download starten, download mittels php starten, http://www.php.de/php-fortgeschrittene/39838-download-starten-header-funktion-vorher-text-ausgeben.html, php download ausgeben, php header exe, header download, php datei im hintergrund downloaden, php header nach download, php header ausgeben, download mit php starten, php header exe download, php download und seite ausgeben, text downloaden php

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