CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken |
23.05.2002, 15:13:26
|
Anfänger
|
|
Registriert seit: May 2002
Beiträge: 2
|
|
Problem mit Datei-Download php
Hi-
ich habe folgenden Code gefunden und für meine Zwecke angepasst. Er soll bewirken, dass die Datei bla.mp3 vom Server gedownloaded wird und nicht geöffnet (in QuickTime). Das alles funktioniert auch in IE und Netscape, in Mozilla allerdings bekomme ich bei Download nicht die Datei bla.mp3 auf meinen Desktop sondern "bla.mp3.php" !! Kann mir jemand erklären woran das liegt und was ich dagegen machen kann?
Danke schonmal...
hier der code:
PHP-Code:
$datei = "bla.mp3";
header('Content-Type: application/unknown');
header('Content-Disposition: attachment; filename='.$datei);
readfile($datei);
Jan
|
23.05.2002, 15:47:41
|
|
Member
|
|
Registriert seit: Mar 2002
Ort: Port 80, localhost-city, 127/0/0/1
Beiträge: 878
|
|
nunja, das kommt daher, dass mozilla vielleicht filname=nicht versteht. Ich persönlich kenn das filename= auch nicht, allerdings bist du sicher, dass da nicht ein doppelpunkt hingehört, statt einem =?
Was mozilla macht, ist, er speichert die datei, so wie sie am server heisst, und da ist am ende eben ein php dran, ob dir das jetzt gefällt, oder nicht.
ob du dagegen was machen kannst, weiss ich nicht, schreib halt dazu, dass mozilla user (oder noch besser: wenn es ein mozilla user ist, schreib dazu) dass sie die datei umbenennen müssen.
Welchen Browser der User verwendet, kriegst du mir javascript ganz einfach heraus.
|
24.05.2002, 12:13:23
|
Anfänger
|
|
Registriert seit: May 2002
Beiträge: 2
|
|
Danke schon mal für die Antwort.
"filename" ist ein optionaler Parameter für den Content-Disposition header. Die Schreibweise ist übrigens korrekt.
Du kannst natürlich recht haben -- da content-disposition allgemein kein offizieller Standard ist, wird Mozilla das vielleicht nicht berücksichtigen... wobei... da wird ja schon was ausgeführt, die Datei heißt immerhin nicht wie die php-Datei, sondern wie die mp3-Datei, nur eben mit ".php" hinten dran...
Wen's interessiert, hier gibt's mehr Info zu content-disposition und dem filename parameter:
http://www.ietf.org/rfc/rfc2183.txt
http://www.ietf.org/rfc/rfc1806.txt
Tja, hat noch jemand anderes vielleicht eine Lösung für mein Problem? Sonst muss ich wirklich auf die Methode der Browser-Erkennung zurückgreifen... ist natürlich nicht so schön... mit JavaScript würde ich das allerdings nicht machen, denn ich rufe das php-Skript aus einem Flash-Movie auf... aber auch da lässt sich natürlich eine Browser-Detection durchführen...
Jan
|
12.03.2003, 06:34:24
|
|
Junior Member
|
|
Registriert seit: Apr 2002
Beiträge: 284
|
|
re
hallo!
ich versuche eine erfolgs/ nicht erfolgreich meldung zu generieren!
so...funktionieren alles tests bisher... allerdings keine ausgabe wenn der download funktioniert. dann ble9bt einn leeres browser fenster stehen!
Code:
if( $go = @filesize("files/$file") ) {
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename="$file"");
readfile("files/$file");
echo "put html header "
."downloading the file.... "
."footer... timeout self.close();";
} else {
echo "error getting file: $file";
}
gruß flobee
|
12.03.2003, 08:14:55
|
Anfänger
|
|
Registriert seit: Feb 2003
Ort: Hessen
Beiträge: 116
|
|
Das wird so auch nicht klappen, weil deine Ausgabe hinten an die Datei gehängt wird. Damit dürftest du also die Datei auch zerstören. Probier dein Skript vielleicht mal mit ner Textdatei, um zu testen, ob das stimmt, was ich denke.
Eine Lösung für dein Problem habe ich aber auch nicht parat.
GG
|
12.03.2003, 08:38:23
|
|
Junior Member
|
|
Registriert seit: Apr 2002
Beiträge: 284
|
|
hallO!
also im IE geht alles nur die blanck site bleibt stehen! die ausgaben vor den header geht nicht!
aber eine idee wie das die ganzen download seiten u.a. auch machen?.... die zeigen ja auch seiten an und ...." please hold......" und nach ner sec. kommt dann der download! wie machen die denn das?
|
12.03.2003, 09:44:39
|
|
Nochmal zum Ursprünglichen Problem. Ich hatte den gleichen Fehler mit NN 7. Da hat er mir aus xyz.zip ein xyz.zip.php4 gemacht. Lösen konnte ich das nur indem ich den richtigen Contenttype geschickt habe (also application/x-zip-compressed)! Dann gings! Evtl. könntest Du die Mp3 vor dem Download erst in eine Zipverwandeln und dann diese mit dem richtigen Contenttype schicken!
Hier hab ich noch was zum Thema Zip mit PHP:
http://www.zend.com/codex.php?id=696&single=1
Zu Flobees Problem:
Das könnte man vielleicht mit einer Metaweiterleitung auf das Downloadscript lösen
Geändert von Ben20 (12.03.2003 um 09:48:48 Uhr)
|
12.03.2003, 09:56:58
|
|
Junior Member
|
|
Registriert seit: Apr 2002
Beiträge: 284
|
|
Yo! hab auch gerade drüber nachgedacht..... erst die anzeige realisieren und dann ein Header("Loacation auf das file (neuer funktions aufruf ..
das sollt gehen
was ist denn das problem mit euren Contenttype ? octet-stream ist doch der download oder nicht?
ein nocache expires 0 und dann muss es gehen!? oder nicht... hab da keine ahnung aber die funktionieren IMMER
wenn du x-zip-compressed angibst kannst du zu 100% davon ausgehen das bei window die datei mit zip endung gepeichert wird sofern du sie nicht angibst beim speichern
syntax ist der : header("Content-Disposition: attachment; filename="$filename_with_extention""); funktioniert bei mir auch auf netscape 4
gruß flobee
Geändert von flobee (12.03.2003 um 10:02:23 Uhr)
|
12.03.2003, 10:02:44
|
|
Natürlich wird wenn ich x-zip sende ein Zipdatei erwartet und ich sende danach ja auch eine Zipdatei, deshalb meinte ich ja, dass man die Datei vorher noch zippen muß!
Mit octeted-stream hatte ich diverse Probleme, da manche Browser den tatsächlichen Mimetype erkannt haben und dann entsprechend reagiert haben (z.B. die PHP Datei in Klartext dargestellt statt sie runterzuladen) - ich habs dann mal mit
x-type/subtype (oder so ähnlich) versucht, aber da hat sich das Problem nur auf andere Browser verschoben!
|
12.03.2003, 10:12:28
|
|
Junior Member
|
|
Registriert seit: Apr 2002
Beiträge: 284
|
|
header( "Content-Type: application/force-download" );
header( "Content-disposition: attachment; filename="$filename"" );
header( "Content-Transfer-Encoding: binary" );
header( "Pragma: no-cache" );
header( "Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0" );
header( "Expires: 0" );
teste mal
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 19:28:36 Uhr.
|