| | | | |
| |||||||
| PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen |
|
| | LinkBack | Themen-Optionen | Thema bewerten |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | ||||
| Neuer Benutzer Registriert seit: 10.05.2006
Beiträge: 7
![]() | Zitat:
Kurz gesagt: ich hab den Pfad abgeändert. | |||
| | |
| | |||
| Moderator Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Zitat:
darum gehts mir, wenn du z.b. erstmal xx mb in ne variable lädst und dann ausgibst, ist es klar, dass es erstmal anlaufen muss, dazu hab ich was im kopf, dass readfile irgendwann mal nen bug mit größeren dateien hatte und diese nicht ganz ausgegebenen hat, bzw erstmal vorher in ne leseschleife gefallen ist und damit massig speicher belegt hat. mfg robo47
__________________ robo47.net - Blog, Codeschnipsel und mehr | | ||
| | |
| | ||||
| Neuer Benutzer Registriert seit: 10.05.2006
Beiträge: 7
![]() | Zitat:
Das wars.....ich hab den Code von hier: http://de.php.net/header übernommen. Code: <?php
function dl_file($file){
//First, see if the file exists
if (!is_file($file)) { die("404 File not found!"); }
//Gather relevent info about file
$len = filesize($file);
$filename = basename($file);
$file_extension = strtolower(substr(strrchr($filename,"."),1));
//This will set the Content-Type to the appropriate setting for the file
switch( $file_extension ) {
case "pdf": $ctype="application/pdf"; break;
case "exe": $ctype="application/octet-stream"; break;
case "zip": $ctype="application/zip"; break;
case "doc": $ctype="application/msword"; break;
case "xls": $ctype="application/vnd.ms-excel"; break;
case "ppt": $ctype="application/vnd.ms-powerpoint"; break;
case "gif": $ctype="image/gif"; break;
case "png": $ctype="image/png"; break;
case "jpeg":
case "jpg": $ctype="image/jpg"; break;
case "mp3": $ctype="audio/mpeg"; break;
case "wav": $ctype="audio/x-wav"; break;
case "mpeg":
case "mpg":
case "mpe": $ctype="video/mpeg"; break;
case "mov": $ctype="video/quicktime"; break;
case "avi": $ctype="video/x-msvideo"; break;
//The following are for extensions that shouldn't be downloaded (sensitive stuff, like php files)
case "php":
case "htm":
case "html":
case "txt": die("Cannot be used for ". $file_extension ." files!"); break;
default: $ctype="application/force-download";
}
//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");
//Use the switch-generated Content-Type
header("Content-Type: $ctype");
//Force the download
$header="Content-Disposition: attachment; filename=".$filename.";";
header($header );
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".$len);
@readfile($file);
exit;
}
?>
@readfile($file); exit; nicht aber das habe ich nun in mein Testscript eingebaut, nun erscheint der Downloaddialog sofort. Sowohl im Firefox als auch im IE. Danke, mein Problem ist damit behoben! | |||
| | |
| | |
| Moderator Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | öhm du willst mir nicht erzählen dass der download ohne readfile überhaupt gekommen ist ?
__________________ robo47.net - Blog, Codeschnipsel und mehr | |
| | |
| | ||
| Neuer Benutzer Registriert seit: 10.05.2006
Beiträge: 7
![]() | Zitat:
| |
| | |
| | |
| Gast
Beiträge: n/a
| Wenn Du doch mal Text ausgeben möchtest... da ohnehin ein "Speichern unter" Dialögchen gestartet wird, kann man sich hier auch das schöne Werkzeug FRAMES zunutze machen und den Download in einem blinden Frame packen (Höhe 0) während im anderen das Bla steht. Da in diesem Fall weder ein Screenreader noch eine Suma was zu suchen hat, halte ich das für wenig verwerflich - muss ja nicht immer die überkandidelte Hochzuchtcode-Maschinerie gestartet werden, wenn's auch einfach geht ![]() |
|
|
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ä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 |
| erst seite ausgeben dann funktion starten php |

Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.