3
$.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';
                        }

                    });

上記のコードは、音楽プレーヤーと新しいページをロードするだけです。ファイルのようにダウンロードしたいです。

4

4 に答える 4

4

PHP 経由で行うことができ、正しいヘッダーを使用して PHP ファイルを作成し、そのページにリダイレクトするよりも、ブラウザーにファイルのダウンロードを強制します。

<?php
header('Content-disposition: attachment; filename=song.mp3');
header('Content-type: audio/mpeg3');
readfile('song.mp3');
?>
于 2012-04-15T13:23:40.930 に答える
3

このようにしてみてください:

header("Content-Disposition: attachment; filename=somefile.mp3;");
于 2012-04-15T13:22:54.517 に答える
2

ajax 呼び出し後にダウンロードの自動化をあきらめた場合は、これを行うことができます。ブラウザは独自の方法でこの状況を処理します。

 $.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>');
                    }

                });
于 2012-04-15T13:43:35.513 に答える
0

それはブラウザに依存します。ブラウザにメディア プラグインがある場合、ダウンロード ダイアログが表示される代わりに、メディア ファイルがブラウザで直接開かれる場合があります。

于 2012-04-15T13:22:24.470 に答える