• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Link zum Runterladen

Status
Für weitere Antworten geschlossen.

Dessp

Mitglied
Ich habe eine MP3 Datei auf einem Server. Nun möchte ich das es ein Download Link gibt. Wenn ich aber ein normales link setzte öffnet sich Quick time bzw. der Player des rechners. Wie kann ich es einstellen das der Download dialog kommt und kein abspielen?
 
Falls Du die mp3-Datei direkt ausgibst geht es nur über .htaccess

Code:
 <FilesMatch "\.(mp3)$" >
ForceType application/octet-stream
</FilesMatch>

Wenn du die mp3-Datei über php ausgibst könnte man dessen header()-Funktion dafür nutzen. Rein mit HTML geht es nicht.

Btw. öffnet vielleicht bei dir ein Abspielprogramm - bei mir würde sie immer zum Download angeboten werden. Das ist eine Browsereinstellung :-P
 
Du übergibst den Dateinamen als GET-Parameter, gibst ganz oben im Script header("Content-Type: application/octet-stream") an und liest dann die Datei per readfile() ein.

So in etwa:
PHP:
<?php
  //Verzeichnis in dem die Dateien liegen
  $dir = "dateien";

  //Prüfen, ob ein Dateiname als Parameter übergeben wurde
  $file = isset($_GET['file']) ? $_GET['file'] : false;

  if(!file)
  {
    //Wenn kein Parameter angegeben wurde
    die("Keine Datei angegeben.");
  }
  elseif(strstr($file, "/"))
  {
    //Wenn ein / im Dateinamen vorkommt wird abgebrochen, da man sonst auf jedes beliebige Verzeichnis zugreifen könnte
    die("Fehlerhafte Anfrage.");
  }
  elseif(!file_exists("$dir/$file"))
  {
    //Wenn die Datei nicht exisitert
    die("Datei nicht gefunden");
  }
  else
  {
     //Download erzwingen
    header("Content-Type: application/octet-stream");
    header("Content-Disposition: attachment; filename=$file");
    header("Content-Length: ".filesize("$dir/$file");
    readfile("$dir/$file");
  }
?>

EDIT: Hmm, etwas langsam -_-
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben