2017-07-19 21 views
0

hrefタグから呼び出されたときにファイルをダウンロードしてうまく動作するPHPスクリプトがありますが、同じPHPスクリプトの場合は動作しません。 ajaxリクエストから呼び出されます。 (ファイルをダウンロードする前に、mysql dbからファイルのパスを抽出する必要があるため、代わりにajaxリクエストを使用する必要があります) 本当に助けていただきありがとうございます。 enter image description hereサーバーからPHPファイルをダウンロードしても、AJAXリクエストでは動作しません。

+0

ファイルをダウンロードするためにAjaxを使用している場合は、javascript内で応答をすべて処理することをブラウザに指示しています。コードは 'success:function(res){ } '....なぜ単に応答を処理する必要があることをブラウザに伝えるリンクを使用しないでください。 –

+0

こんにちは、あなたの答えに感謝します。問題は、ユーザーがダウンロードするファイルを選択できることです。私はそのファイルの名前をスクリプトに渡す必要があります。私はajaxなしでPHPスクリプトにパラメータを渡す方法を知らない。 –

答えて

0

あなたが生成する必要があります:私は、代わりに次の画面を得る

PHP (mydownload.php) 
<?php 
header("Content-disposition: attachment; filename=myfile.pdf"); 
header("Content-type: application/pdf"); 
readfile("myfile.pdf"); 
?> 

HTML (index.html) 
<head> 
<script type="text/javascript" src="js/jquery/jquery-3.1.1.min.js"></script> 

<script type="text/javascript"> 
function miFuncion() 
{ 
    $.ajax({ 
    url: "mydownload.php", 
    type: "post", 
    success: function(res){ 
    } 
    }) 
} 
</script> 

</head> 
<body> 

    <a href="mydownload.php">Download the document (PDF)</a> // Work ! 

    <form> 
    <input type="button" onclick="miFuncion()" value="Activar Función DL"> // Doesn`t work 
    </form> 

</body> 
</html> 

私はデHREFタグからオプションを使用して、前に言ったように、ファイルは問題なくダウンロードしたが、AJAXリクエストからオプションを使用していますlocation.href = your_download_url; あなたの場合、dinamicallyファイルを生成していないので、location.href = "/download.php";miFuncion()に直接電話することができます(ajaxリクエストなし)。

関連する問題