顧客が会社のサーバーからファイルをダウンロードするためのファイル ダウンロード ページを作成したいと考えています。
また、実際のファイル リンクをユーザーに公開したくないので、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を使用しています。ありがとうございます!