0

顧客が会社のサーバーからファイルをダウンロードするためのファイル ダウンロード ページを作成したいと考えています。

また、実際のファイル リンクをユーザーに公開したくないので、2 つのページがあります。クリックするリンクを提供するための filelist.php と、もう一方のページにパラメーターとしてファイル名を投稿するためのものです。ファイルストリームを顧客に転送します。

download.php の重要な部分は次のようになります。

$fp = fopen($real_file_path,'r');
$file_size = $temp_res['ef_file_bytes'];
Header("Content-type: application/octet-stream");
Header("Accept-Ranges: bytes");
Header("Accept-Length: ".$file_size);
Header("Content-Disposition: attachement;filename=".$file_name);
echo fread($fp,$file_size);
fclose($fp);
exit;

ここで、filelist.php で onclick() 関数を使用します。ファイル リンクがクリックされると、次の関数が呼び出されます。

function downloadfile( ef_name )
    {
        var url_str='download.php';
        url_str = encodeURI(url_str);
        $.post(
        url_str,{fnm:ef_name },
        function(data){
            window.open().document.write(data);
          }
          ); 
    }

しかし、ダイアログウィンドウをポップアップして保存するのではなく、ファイルのコンテンツをページに表示することしかできません。

テストに使用すると、うまく機能します。

上記のJSコードの「データ」は、ダウンロードしたいファイルの内容全体です。問題は $.post(); で使用した関数にあると思います。post パラメータを使用して新しいページを開くことができる JavaScript の関数はありますか?

私はWindows、Apache、php、mysqlを使用しています。ありがとうございます!

4

1 に答える 1

0

使用することはできませんが、で非表示を$.post作成して送信することはできます。オプションで、結果を受け取るために使用する非表示。formmethod="POST"iframetarget

于 2012-09-19T14:02:38.373 に答える