SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



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



:: Buchempfehlung ::

TYPO3 Kochbuch

TYPO3 Kochbuch zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP für Fortgeschrittene und Experten

PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 23.05.2002, 15:13:26
Jan__ Jan__ ist offline
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
Mit Zitat antworten
  #2  
Alt 23.05.2002, 15:47:41
Benutzerbild von Matt
Matt Matt ist offline
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.
Mit Zitat antworten
  #3  
Alt 24.05.2002, 12:13:23
Jan__ Jan__ ist offline
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
Mit Zitat antworten
  #4  
Alt 12.03.2003, 06:34:24
Benutzerbild von flobee
flobee flobee ist offline
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
Mit Zitat antworten
  #5  
Alt 12.03.2003, 08:14:55
Greg G Greg G ist offline
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
Mit Zitat antworten
  #6  
Alt 12.03.2003, 08:38:23
Benutzerbild von flobee
flobee flobee ist offline
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?
Mit Zitat antworten
  #7  
Alt 12.03.2003, 09:44:39
Ben20
Guest
 
Beiträge: n/a
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)
Mit Zitat antworten
  #8  
Alt 12.03.2003, 09:56:58
Benutzerbild von flobee
flobee flobee ist offline
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)
Mit Zitat antworten
  #9  
Alt 12.03.2003, 10:02:44
Ben20
Guest
 
Beiträge: n/a
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!
Mit Zitat antworten
  #10  
Alt 12.03.2003, 10:12:28
Benutzerbild von flobee
flobee flobee ist offline
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
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

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.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 09:01:07 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt