可以使用Python SimpleHTTPServer或cgi上传文件吗?

Rom*_*man 11 python webserver cgi file-upload simplehttpserver

我想有一个简单的网页,用户可以上传文件.什么是最简单的方法.

我知道如何开始,SimpleHTTPServer但我不知道如何使用上传文件SimpleHTTPServer.我甚至不知道是否有可能.

我找到了一些使用cgi上传文件的代码,但如果我在命令行中执行此代码,它只会在屏幕上打印HTML代码.

tex*_*ell 3

是的,SimpleHTTPServer 可以使用正确的请求处理程序接收 http 上传。

基本上,您需要定义一个 do_POST 方法,其中表单或类似的东西上传数据。然后可以从 self.rfile 读取上传的内容。

class SimpleHTTPRequestHandler(BaseHTTPServer.BaseHTTPRequestHandler):
     # ...
     def do_POST(self):
         for line in self.rfile:
             # do something with the line
             print line
Run Code Online (Sandbox Code Playgroud)

当然,如果你想从浏览器上传,你需要有一个表单可以发布到http服务器:

<form enctype="multipart/form-data" method="post" action="http://hostname.of.server:8080/">
  <input name="file" type="file"/>
  <input type="submit" value="upload"/>
</form>
Run Code Online (Sandbox Code Playgroud)

更多详细信息,特别是如何从表单数据解析原始数据,可以在作为问题评论发布的链接中找到。