1

私は、オフィスのユーザーがストレージ用にファイルをアップロードできるようにするデータ サーバーへの Web インターフェイスに取り組んでいます。現在、 Python 2.7を使用して32 ビット Windows XPデスクトップでCGIHTTPServerを実行し、さまざまなファイル (通常は画像とビデオ ファイル) を使用していくつかのテストを実行しています。

ほとんどのファイルでは、すべて正常に動作しているようです。ただし、約4MB以上のファイルをアップロードすると、サーバーがエラーをスローしてリクエストが失敗しIOError: [Errno 22] Invalid argumentます。

これは、使用する場合の完全なトレースバックですが、そうではないと思われます。

Traceback (most recent call last):
File "C:\Python27\lib\SocketServer.py", line 284, in _handle_request_noblock
self.process_request(request, client_address)
File "C:\Python27\lib\SocketServer.py", line 310, in process_request
  self.finish_request(request, client_address)    
File "C:\Python27\lib\SocketServer.py", line 323, in finish_request
  self.RequestHandlerClass(request, client_address, self)
File "C:\Python27\lib\SocketServer.py", line 639, in __init__
  self.handle()
File "C:\Python27\lib\BaseHTTPServer.py", line 337, in handle
  self.handle_one_request()
File "C:\Python27\lib\BaseHTTPServer.py", line 325, in handle_one_request
  method()
File "C:\Python27\lib\CGIHTTPServer.py", line 61, in do_POST
  self.run_cgi()
File "C:\Python27\lib\CGIHTTPServer.py", line 287, in run_cgi
  stdout, stderr = p.communicate(data)
File "C:\Python27\lib\subprocess.py", line 740, in communicate
  return self._communicate(input)
File "C:\Python27\lib\subprocess.py", line 960, in _communicate
  self.stdin.write(input)
IOError: [Errno 22] Invalid argument

最初はコードのバグを疑っていましたが、コードが呼び出される前にサーバーがクラッシュするため、どこで解決策を探すべきか混乱しています。

サーバーのこの基本的な実装では、より大きなファイルを処理できない可能性はありますか? 私はオンラインで調べましたが、これが事実であるという兆候は見つかりませんでした. この場合、別のエラー メッセージが表示されることも予想していました。

4

0 に答える 0