Ankündigung

Einklappen
Keine Ankündigung bisher.

Downloadautostart verhindern und "Speicher"-Fenste

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Downloadautostart verhindern und "Speicher"-Fenste

    Hi!

    Ich habe schon gegoogled und die Forumsuche verwendet, aber leider nichts gefunden.

    Kann mir jemand sagen wie ich es mache, so dass zum Beispiel eine Datein namens video.mpg nicht automatisch im Windows Media Player geöffnet wird, sondern das beim anklicken des Links (in der Datei download.php) sich das "Speicherfenster" statt der direkten Streamwiedergabe öffnet.

    Weiß da jemand weiter?


  • #2
    Nicht machbar. Der Client entscheidet, was er mit der DAtei macht, da hat der Server bzw. dessen Admin kein Recht drauf, das zu bestimmen.

    Kommentar


    • #3
      Weiß da jemand weiter?
      Header() setzen

      Kommentar


      • #4
        du könntest die datei einzippen , da muss dan runtergeladen werden....

        Kommentar


        • #5
          Zitat von skydreamboy
          Ich habe schon gegoogled und die Forumsuche verwendet, aber leider nichts gefunden.
          Der war gut...

          Kommentar


          • #6
            wie soll ich denn da einen header um den <a>-tag setzen?

            Kommentar


            • #7
              Im PHP-Skript!
              http://forum.developers-guide.net/showthread.php?t=687
              privater Blog

              Kommentar


              • #8
                so... ich hab jetzt folgendes eingesetzt:
                PHP-Code:
                <?php
                    header
                ("Content-Type: x-type/subtype");
                    
                header("Content-Length: ".filesize($all3['download']));
                    
                header("Content-Disposition: attachment; filename=".$all3['download_ende']);

                    
                readfile($all3['download']);
                ?>
                Die Werte $all3['download'] (http://URL/bild.jpg) und $all3['download_ende'] (bild.jpg) werden aus einer mySQL-Datenbank ausgelesen.

                Dieses Script erkennt zwar den Filenamen beim "Speichern unter", aber die richtige Datei läd er trotzdem nicht runter (nur eine 0KB-JPG-Datei namens bild.jpg).

                Das Ding ist, dass bei mir die Dateien nicht auf dem Server, sondern auf unterschiedlichen Servern liegen und deshalb die URL über $all3['download'] aus der DB gelesen wird.

                Kann man den header auch irgendwie mit externen Dateien verwenden?
                Und wenn ja: wie?

                Kommentar


                • #9
                  Was sagt readfile(), wenn du die Datei ohne die Headerangaben aufrufst und error_reporting auf E_ALL steht? Ist allow_url_fopen bei dir vielleicht deaktiviert, so dass du nicht auf Remotedateien zugreifen kannst?

                  Kommentar


                  • #10
                    Hi!
                    Wenn ich die Datei ohne alle Headerangaben aufrufe, dann wird die Datei ganz normal geöffnet und das Bild angezeigt.

                    allow_url_fopen ist aktiviert.

                    Wenn ich die Datei (mit error_reporting(E_ALL); ) öffne, dann erscheinen folgende Fehlermeldungen:

                    PHP-Code:
                    Warningfilesize(): Stat failed for [url]http://cmajor.DOMAIN.de/files/bild.jpg[/url] (errno=2 - No such file or directory) in /www/htdocs/w005d972/hp/cmajor/fopen.php on line 13 
                    Zeile 13 ist jedes Mal die Problemzeile.
                    In dieser Zeile steht der Header, der die filesize() "messen" soll:
                    header("Content-Length: ".filesize($all3['download']));
                    Wie gesagt ist $all3[download] der Wert für den DB-Wert "http://URL/bild.jpg" (natürlich ohne anführungszeichen).

                    Kommentar


                    • #11
                      ich wuerde es mal mit Content-Type application/x-force-download oder so aehnlich probieren - hab die genaue angabe vergessen

                      Kommentar


                      • #12
                        hilft leider auch nichts.
                        der fehler liegt immer noch beim filesize() auslesen.

                        Kommentar


                        • #13
                          filesize() kann erst aber PHP 5 mit Remotedateien arbeiten. In deinem bleibt dir wohl nur der Weg, zunächst den Inhalt der Datei mittels file_get_contents() zu holen, anschließend dessen Größe zu ermitteln und dann erst in den Ausgabepuffer zu lenken.

                          Kommentar


                          • #14
                            Zitat von xabbuh
                            filesize() kann erst aber PHP 5 mit Remotedateien arbeiten. In deinem bleibt dir wohl nur der Weg, zunächst den Inhalt der Datei mittels file_get_contents() zu holen, anschließend dessen Größe zu ermitteln und dann erst in den Ausgabepuffer zu lenken.
                            oder halt nach möglichkeit die header des betreffenden webservers analysieren und schauen ob der "sauber" arbeitet., spart unter umständen viel traffic
                            robo47.net - Blog, Codeschnipsel und mehr
                            | Caching-Klassen und Opcode Caches in php | Robo47 Components - PHP Library extending Zend Framework

                            Kommentar


                            • #15
                              aber wie kann ich denn die header der externen webserver auslesen?

                              Kommentar

                              Lädt...
                              X