0

我从 python CGI 编程开始,在 apache2 中使用 mod_python,并试图将 HTTP 请求中的 GET 字段检索到一个简单的 .py 页面。

编码:

#!/usr/bin/python                                                                                                                                                                                                       

import cgi
import cgitb; cgitb.enable()

print 'Content-type: text/html\n'
print '''                                                                                                                                                                                                               
<html>                                                                                                                                                                                                                  
<body>                                                                                                                                                                                                                  
'''
form = cgi.FieldStorage()
l = len(form.keys())
print "<p>%s field(s) set.</p>" % l
print '''                                                                                                                                                                                                               
</body>                                                                                                                                                                                                                 
</html>                                                                                                                                                                                                                 
'''

页面打印“0 个字段集”。这里有什么问题?到目前为止,在我寻找答案的过程中,我还没有在 apache2 的 mod_python 中找到会阻止将 GET 字段传输到 CGI 脚本的参数。

4

1 回答 1

0

cgi.FieldStorage 依赖于 POST 的多部分表单,而不是通过 GET 发送。更改表单上的方法并确保表单标签中有 multipart:

<form action="" method="post" multipart>
  <input type="file" name="file">
  <input type="submit" name="submit" value="Submit">
</form>

当您使用 GET 方法时,cgi.FieldStorage 只获取查询字符串,它最多可以为您提供您尝试提交的文件的名称。

于 2012-11-13T02:26:23.037 回答