2012-02-15 7 views
1

解決済み:以下の回答を「解決済み」と表示してください。ありがとう。委任されたクリックボタンでファイルをダウンロードします。


クリックするとurlで指定された場所からファイルをダウンロードしようとしています。私はデリゲートを使用していますが、ボタンがクリックされるとブラウザはファイルの場所に移動してコンテンツを表示します。私はクリックがブラウザのダウンロードダイアログをトリガーするようにしたい。 "event.preventDefault();" この質問に関するすべての記事を使用することを言います

$('#left').delegate("a", "click", function(event){ 
    //alert("CLICKED"); 

    event.preventDefault(); 
    window.location.href = url; 

}); 

:ここ

コードですしかし、それは私にとってはうまくいかない。誰にも何か提案はありますか?

+0

jQueryを使用してこれを行うことはできません... hrefはページを処理するバックエンドファイルですか?またはファイルへの直接リンク(例:pdf)? – ManseUK

+0

これはWebサーバー上のファイルへの直接リンクです –

答えて

3

サーバー側を変更する必要がある場合があります(可能な場合)。

HTTPレスポンスヘッダーを含める必要があります。

Content-disposition: attachment; filename=fname.ext

ので、ブラウザはそれがダウンロードダイアログを開く必要があることを知っています。そうしないと、ブラウザはプレビュー/プレビューを試みます。

さらに詳しい情報:解決しよう

Microsoft Support

+0

このヘッダーをバックエンドに追加する必要があります。クライアント側では、応答ヘッダーを変更することはできません。 – deantoni

+0

私は次のように使ってみました: "header( 'Content-Disposition:attachment; filename ='。$ file_path);"私がダウンロードをクリックすると実行する私のPHPスクリプトで。しかし、その行が実行されたときに何も起こらなかった。 –

+0

ヘッダーを追加した後、ブラウザでファイルに直接アクセスしようとするとどうなりますか?ダイアログが表示されますか? – deantoni

1

: 次のPHPスクリプトは、ファイルとブラウザダイアログボックスを促す許可:

header('Content-Disposition: attachment; filename="' . $filename . '"'); 
$fp=fopen($filepath,'r'); 
fpassthru($fp); 
fclose($fp); 

ありがとうございましたで私を導くためのdeantoni正しい方向=)。


+0

ありがとう!あなたが私の答えを受け入れられるようにすることができれば、私はとても幸せです:D – deantoni