0

単純なスレッド化された Python サーバーを作成しました。フォーマットには 2 つのパラメーターがあり、1 つは JSON (戻り文字列データ) で、もう 1 つは zip です。ユーザーが入力パラメーターの 1 つとして format=zip を選択すると、サーバーが zip ファイルをユーザーに返す必要があります。サーバーの do_GET() でユーザーにファイルを返すにはどうすればよいですか? ファイルをダウンロードできる URL を返すだけですか、それともファイルをユーザーに直接送り返すことはできますか? オプション 2 が可能な場合、どうすればよいですか?

ありがとうございました

4

2 に答える 2

0

問題は、返そうとする前に zipfile オブジェクトを閉じていなかったことです。ファイルにロックがかかっているようです。

GET を使用して単純な http python サーバーから zip ファイルを返すには、次の手順を実行する必要があります。

  1. ヘッダーを「application/zip」に設定します

    self.send_header("Content-type:", "application/zip")

  2. zipfile モジュールを使用して zip ファイルを作成する

  3. ファイル パス (例: c:/temp/zipfile.zip) を使用して、「rb」メソッドを使用してファイルを開き、バイナリ情報を読み取ります。

    openObj = open( < path > , 'rb')

  4. オブジェクトをブラウザに戻す

    openObj.close() del openObj self.wfile.write(openObj.read())

    それはそれについてです。ご協力ありがとうございました。

于 2014-04-07T14:53:37.517 に答える
0

ファイルをユーザーに直接送り返し、 .などContent-Typeの正しいメディア タイプapplication/zipのヘッダーを追加する必要があります。

したがって、ヘッダーは次のようになります。

Content-Type: application/zip
于 2014-04-07T11:21:41.533 に答える