Python CGIHTTPServer中的文件上载错误

时间:2013-03-07 21:48:33

标签: python file-upload cgi

我正在开发一个数据服务器的Web界面,允许我办公室的用户上传文件进行存储。现在,我在 32位Windows XP 桌面上使用 Python 2.7 运行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

起初我怀疑是一个代码错误但服务器在我的任何代码被调用之前崩溃,所以我对在哪里寻找解决方案感到困惑。

服务器的这个基本实现是否有可能无法处理更大的文件?我已经在线查看,并没有发现这种情况的迹象。如果是这种情况,我本来也会期待一个不同的错误信息。

0 个答案:

没有答案