1

web.pyフレームワークを使用して、処理されたデータのファイルをwebappユーザーに返そうとしています。この例では、ファイルの名前はplate3_v4.gbです。results.gbという名前で返そうとしています。これは、このスレッドに基づいています。

コードは次のとおりです。

class ServeHandler():
    def GET(self):
        web.header("Content-Disposition", "attachment; filename=%s" %"results.gb")
        web.header("Content-Type", "gb")
        web.header('Transfer-Encoding','chunked')
        f = open('/usr/local/www/wsgi-scripts/uploads/plate3_v4.gb','rb')
        while 1:
            buf = f.read(1024 * 8)
            if not buf:
                break
            yield buf

データを提供する必要があると思うページに移動すると、

mod_wsgi (pid=21773): Exception occurred processing WSGI script '/usr/local/www/wsgi-scripts/code.py'.
IOError: failed to write data

エラーログにあります。

何かご意見は?

4

1 に答える 1

3

まず、WSGIアプリケーションはTransfer-Encoding応答ヘッダー自体を設定しないでください。基盤となるWebサーバーのみがそれを行う必要があります。mod_wsgiの場合、応答コンテンツの長さが指定されていない限り、Apacheは自動的にこれを実行する必要があります。

エラーに関しては、クライアントが返されたすべてのデータを読み取る前にソケット接続を閉じたことを示しています。

于 2012-08-09T01:54:20.107 に答える