2012-04-15 4 views

Antwort

3

Sie es über PHP tun könnten, eine PHP-Datei mit den richtigen Header erstellen und als zu dieser Seite zu umleiten, wird es den Browser zwingen, die Datei herunterzuladen.

<?php 
header('Content-disposition: attachment; filename=song.mp3'); 
header('Content-type: audio/mpeg3'); 
readfile('song.mp3'); 
?> 
+0

http_send_file von pecl_http ist wirklich nützlich - aktiviert Bereichsanforderungen und http_match_etag für automatische 304 (nicht geändert) Antworten. http://php.net/manual/en/function.http-send-file.php und http://php.net/manual/en/function.http-match-etag.php – Olli

0

Das ist Browser abhängig. Wenn Ihr Browser über ein Medien-Plugin verfügt, können Mediendateien direkt im Browser geöffnet werden, anstatt einen Download-Dialog anzubieten.

3

versuchen, so zu tun:

header("Content-Disposition: attachment; filename=somefile.mp3;"); 
+0

Dies setzt natürlich PHP-Skript auf der Serverseite voraus. – Olli

+0

ja ich benutze PHP – Adam

+0

wo würde ich diesen Code? In meiner Prozessform.php? – Adam

1

Wenn Sie den Download nach dem Ajax-Aufruf Automatisierung aufgeben, Sie können dies tun. Die Browser werden diese Situation auf ihre eigene Weise behandeln.

$.ajax({ 
       type: "POST", 
       url: "processform.php", 
       dataType: "json", 
       data: {name: name, email: email, city: city, country: country, day: day, month: month, year: year} 
       }).done(function(msg){ 

        if(msg.success == 1){ 
         $("#success_msg").append('<p>'+msg.message+'</p>'); 
         // window.location.href = './music/song.mp3'; 
         $('<a/>', {target:'_blank', href:'./music/song.mp3'}).appendTo($("#success_msg")).html('Click To Download <Filename>'); 
        } 

       }); 
Verwandte Themen