私は、リモート(FTP)サーバからクライアントへのダウンロードを容易にしようとしているクライアント向けのWebベースのファイル管理インタフェースを構築しています。まずWebサーバーを起動します。FTPファイルをクライアントにダウンロードするReadfile()
Readfile()
は、ウェブベースのダウンロードとパブリックFTPサーバーの両方で完全に動作することがわかっています。問題は、FTP URL経由で資格情報を指定すると、明らかに動作しなくなることです。私はこのオンラインの他のレポートを見つけましたが、これまでのところ解決策や回避策はありません。
$file_url = 'ftp://username:[email protected]/198.2.148.130%20port%2025665/server.properties';
header('Content-Type: application/octet-stream');
header("Content-Transfer-Encoding: Binary");
header("Content-disposition: attachment; filename=\"" . basename($file_url) . "\"");
readfile($file_url);
期待どおりに動作する回避方法がありますか?私は、これがどのようにして固定できるのか困っています。どこよりもバグのようです。
実際に上記の方法で、ファイルをサーバーにダウンロードしてからクライアントに中継します。 – arkascha
あなたの特定の質問について:phpのftp拡張子を見て、一時ファイルを使用してください。 – arkascha
私はお詫びします、私はもっとはっきりしていたはずです。私が使っているアプローチでは、クライアントがダウンロードを完了するまで待つ必要がありません。サーバー上のメモリにのみ格納し、ファイルに書き込むことはしません。 –