我无法用CGIHTTPServer上传文件

1 投票
1 回答
606 浏览
提问于 2025-04-16 04:02

我正在使用CGIHTTPServer来搭建一个简单的cgi服务器。我想通过一个表单上传文件,使用的是post方法和multipart/form-data这种格式,但在我的cgi脚本中获取表单字段的值时遇到了问题。

当脚本获取到表单字段时,文件的值是一个MiniFieldStorage,只包含两个字段(键和文件名),我无法获取到文件的内容。根据API文档,这个内容应该在StorageField的值字段中,但在MiniFieldStorage中这个字段并不存在。

我该如何获取一个包含文件内容的StorageField,而不是MiniFieldStorage呢?有没有其他方法可以使用CGIHTTPServer上传文件?

非常感谢!

1 个回答

1

请提供一些代码示例。

根据文本的提示,你应该看看cgi模块

跟着示例走,特别是cgi.test()这个函数。

cgi — 通用网关接口支持

这是一个支持通用网关接口(CGI)脚本的模块。

这个模块定义了一些工具,供用Python编写的CGI脚本使用。

引用FieldStorage的描述(使用cgi模块):

要获取提交的表单数据,最好使用FieldStorage类。这个模块里定义的其他类主要是为了向后兼容。只需实例化一次,不要带参数。这会从标准输入或环境中读取表单内容(具体取决于根据CGI标准设置的各种环境变量的值)。因为它可能会消耗标准输入,所以只应该实例化一次。

撰写回答