2009-06-25 8 views
1

1回のリクエストで、サーバーマシンからC++ Webアプリケーション経由でローカルハードディスクにファイルのグループをコピーするにはどうすればよいですか?これは、一種のファイルをサーバーからローカルマシンにダウンロードします。私はJavaでZipInputStreamとGZipInputStreamでこれを行うことができると思います。C++を使用して、1つのhttpリクエストで複数のファイルをサーバからローカルハードディスクにコピーする方法は?

これをサーバーサイドコードで完全に達成することはできますか?または、ファイルの一括コピーを実行するには、ローカルマシン上で実行されているクライアントが必要ですか?

答えて

0

ユーザーがこれを認識していて、ファイルがウェブサイトのレンダリングに必要でない場合、それらをアーカイブにプッシュしてサイトからリンクすることができます(または、sourceforgeのようなことを行い、アーカイブとブラウザ単にそれをダウンロードします。あなたはzlibを使用することができ、アーカイブ用。あなたはページ全体を持ってしようとしている場合だけ

int ret; 

/* avoid end-of-line conversions */ 
SET_BINARY_MODE(stdin); 
SET_BINARY_MODE(stdout); 

ret = def(stdin, stdout, Z_DEFAULT_COMPRESSION); 
if (ret != Z_OK) 
    zerr(ret); 
return ret; 

(標準入力からここに)データをgzip形式としてContent-typeを送信し、プッシュする(HTML、CSS、JS、IMG )を1つとして送信すると、これらのファイルはすべてHTML(画像も含む)に挿入できます(this参照)。

+0

zlibは複数のファイルを一緒にafaikで貼り付けることはありません。このためにはtarなどを使用する必要があります – Hasturkun

1

そのような要求を受信すると、フォーム

http://server:port/fileserver?f=FILE1&f=FILE2&.....&f=FILEN

の要求を受け入れ、Javaサーブレット/ ISAPI拡張機能を持っている、サーバー側のコードは、zlibのを使用して、zipファイルにすべてのファイルをパックし、zipファイルを送信することができますContent-Type、Content-Length、Last-Modifiedなどを設定するHTTPレスポンスとしてのファイル。

詳細注:IIS6以上でISAPIを使用している場合は、このコンテンツをIISのカーネルモード応答キャッシュに追加することもできます。

関連する問題