php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 11.05.2006, 09:02  
Neuer Benutzer
 
Registriert seit: 11.08.2005
Beiträge: 27
Daskaras
Standard Dateidownload per PHP

Ich habe nach diesem Tut versucht, einen Dateidownload per PHP zu realisieren.

http://www.php-faq.de/q/q-datei-download.html

Nun, ich habe folgendes Problem:
PHP-Code:
<?php
If (isset($_GET['id']) AND $_GET['id'] == 1) {
        
//Prozedur für den Download des Patchers
        
$download $_GET['download'];
        
$basedir "downloads";    
        
$filelist = array(
          
"patcher" => "test.zip"
        
);
    
        
$filename sprintf("%s/%s"$basedir$filelist[$download]);
    
        
header("Content-Type: application/zip");
    
        
$save_as_name basename($filelist[$download]);
        
header("Content-Disposition: attachment; filename=\"$save_as_name\"");
    
        
readfile($filename);
}
?>
Sobald es augerufen wird, sollte ich eigentlich die test.zip runterladen können, stattdessen will er aber jedesmal die index.php runterladen.

Ein Kollege meinte, es könnte an der "Content-Disposition" liegen, aber ich habe ka, der damit genau meint, bzw was man da ändern könnte.
Daskaras ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 11.05.2006, 09:19  
Gast
 
Beiträge: n/a
Standard

Kurze Frage am Rande.
$_GET['id'] testest Du brav ab, bevor Du es benutzt.
$_GET['download'] wird einfach so benutzt.
Was passiert zum Beispiel, wenn skript.php?id=1&download=schmuh eingegeben wird?
 
Alt 11.05.2006, 09:33  
Erfahrener Benutzer
 
Registriert seit: 13.11.2005
Beiträge: 2.583
xabbuh
Standard Re: Dateidownload per PHP

Zitat:
Zitat von Daskaras
Sobald es augerufen wird, sollte ich eigentlich die test.zip runterladen können, stattdessen will er aber jedesmal die index.php runterladen.
Ist index.php der Dateiname deines Scriptes? Tritt das Problem im Internet Explorer auf?
xabbuh ist offline  
Alt 11.05.2006, 09:49  
Erfahrener Benutzer
 
Registriert seit: 25.04.2005
Beiträge: 1.356
HStev zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

Irre ich mich oder ist das mittlerweile der 5. Beitrag innerhalb eines Monats zum gleichen Thema??

Nutzt doch mal die Forensuche ... das ist n typisches Problem und da gibts ein paar kleine Workarounds die hier schon mehrmals besprochen wurden.
__________________
Gewisse Dinge behält man besser für sich, z.B. das man gewisse Dinge für sich behält.
HStev ist offline  
Alt 11.05.2006, 12:36  
Neuer Benutzer
 
Registriert seit: 11.08.2005
Beiträge: 27
Daskaras
Standard

@Bruchpilot:
Genau dann will er die index.php runterladen

@xabbuh:
Das ist die Datei, wo der Teil des Scriptes drin ist, ja.
Das Problem tritt bei dem IE, sowie dem Firefox auf.
Daskaras ist offline  
Alt 11.05.2006, 12:56  
Gast
 
Beiträge: n/a
Standard

http://test.php-help.info/download-6/ (Quelltexte werden angezeigt)
 
Alt 11.05.2006, 13:11  
Gast
 
Beiträge: n/a
Standard

Zitat:
Was passiert zum Beispiel, wenn skript.php?id=1&download=schmuh eingegeben wird?
Zitat:
Zitat von Daskaras
@Bruchpilot:
Genau dann will er die index.php runterladen
Also genau dann, wenn ein download angegeben wird, der nicht im Feld im Skript vermerkt ist -> nicht funktionieren kann?
 
Alt 11.05.2006, 15:24  
Erfahrener Benutzer
 
Registriert seit: 25.04.2005
Beiträge: 1.356
HStev zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

Die Forensuche scheint wohl immer noch eine unbekannte Funktion zu sein ...

Das hat nix mit PHP zu tun das ist n bekannter Bug des IE's der sich aber mit Mod Rewrite umgehen lässt aber zum Thema gibts hier locker 3 Threads in denen die Lösung geposted wurde... die lösung steht sogar selbst in der PHP FAQ

Von daher zum 4. mal nu

Zitat:
Die Reaktion des UserAgent auf die oben genannten Header ist in den RFCs für HTTP und MIME nicht eindeutig definiert. Zusätzlich haben einige Browser Bugs bezüglich der korrekten Interpretation von Content-Disposition-Headern. Es wird dann häufig versucht, den UserAgent mit nicht standardisierten Header-Kreationen zum Anzeigen des "Speichern Unter"-Dialoges zu zwingen. Das mag bei einigen UserAgents rein zufällig zum gewünschten Verhalten führen, ist aber nicht empfehlenswert. Sofern nicht standardisierte Content-Type-Header verwendet werden, so sind diese mit einem x- einzuleiten (Content-Type: x-type/x-subtype).

Der Internet Explorer 5.5 ignoriert in vielen Fällen das Filename-Attribut des Content-Disposition-Headers und schlägt vor, die Datei nicht unter dem dort vorgegebenen Dateinamen, sondern unter dem Namen des PHP-Scriptes zu speichern. Für dieses Problem gibt es verschiedene Workarounds. Bei Verwendung des Apache als HTTP-Server kann man z.B. ModRewrite verwenden. In die .htaccess oder http.conf:

RewriteEngine on
RewriteRule download/([^/]{1,30})\.([a-z0-9]{2,4}) /download.php?filename=$1&extension=$2

Bei einem Request für /download/prospekt.pdf wird auf dem Server dann das Script /download.php?filename=prospekt&lextension=pdf aufgerufen. Wenn der Internet Explorer 5.5 das Filename-Attribut des Content-Disposition-Headers ignoriert, so wird er den String hinter dem letzten Slash des URL als Dateinamen für die zu speichernde Datei anbieten. In diesem Beispiel also prospekt.pdf.
http://www.php-faq.de/q/q-datei-download.html
__________________
Gewisse Dinge behält man besser für sich, z.B. das man gewisse Dinge für sich behält.
HStev ist offline  
Alt 12.05.2006, 08:04  
Neuer Benutzer
 
Registriert seit: 11.08.2005
Beiträge: 27
Daskaras
Standard

@HStev:
Als Webserver haben die den IIS, was mache ich da?

@Bruchpilot:
Ja, wenn man eine Datei angibt, die nicht vorhanden ist.
Beispiel: Im Ornder Download ist eine Datei namens "test.zip". Man gibt aber &download=bla an. Dann findet er die Datei net und will die index.php runterladen.
Daskaras ist offline  
Alt 12.05.2006, 08:28  
Erfahrener Benutzer
 
Registriert seit: 25.04.2005
Beiträge: 1.356
HStev zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

Es ist aber nach wie vor das gleiche Problem der Firefox hat mit einigen Headern auch Probleme... außerdem steht in dem Artikel ja "eine Lösung von vielen"

ps: das du den IIS und IE benutzt konnte bis zu deinen letzten Post niemand riechen...
__________________
Gewisse Dinge behält man besser für sich, z.B. das man gewisse Dinge für sich behält.
HStev ist offline  
 


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
Problem bei Dateidownload via PHP Script niffi PHP-Fortgeschrittene 7 01.06.2007 19:39
dateidownload mit limit für große dateien imported_kremser PHP Tipps 2007 6 25.04.2007 16:27
Dateidownload aus Datenbank Problem beim IE, Headerprobleme? tomx992 PHP-Fortgeschrittene 3 25.09.2006 22:41
content-type bei dateidownload Stinger PHP-Fortgeschrittene 4 02.03.2006 09:00
URL bei Dateidownload unsichtbar machen ZeHa PHP Tipps 2005-2 12 23.09.2005 16:51
Dateidownload - Filenamen verbergen?! PHP Tipps 2005-2 9 08.08.2005 22:08
Dateidownload ohne Zwischenspeichern PHP Tipps 2005-2 12 13.07.2005 10:23
Dateidownload Mano PHP Tipps 2005 10 22.03.2005 12:07
Dateidownload aus Datenbank tomx992 PHP-Fortgeschrittene 10 04.02.2005 18:41
header für Dateidownload robo47 PHP Tipps 2004-2 5 08.11.2004 13:22
Dateidownload per Script klappt nur teilweise? PHP Tipps 2004 2 25.10.2004 11:50
dateidownload PHP Tipps 2004 17 09.09.2004 20:03
[Erledigt] fenster dateidownload beim öffnen eine php seite &lt;-- hilf Server, Hosting und Workstations 7 16.07.2004 16:45
Dateidownload nicht mehr möglich! PHP Tipps 2004 3 09.06.2004 10:51

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
\content-type: x-type/x-subtype\, dateidownload durch code eingabe

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