Python文件上传“KeyError”

2024-10-01 07:42:57 发布

您现在位置:Python中文网/ 问答频道 /正文

这个代码有什么问题吗?在

这是我的HTML:

<html><body>
<form action="iindex.py" method="POST" enctype="multipart/form-data">
<p>File: <input type="file" name="ssfilename"></p>
<p><input type="submit" value="Upload" name="submit"></p>
</form>
</body></html>

这是我的Python脚本:

^{pr2}$

这是我得到keyror的那条线。在

File "/Applications/MAMP/python/framework/Python.framework/Versions/2.6/lib/python2.6/cgi.py", line 541, in __getitem__
raise KeyError, key

KeyError: 'ssfilename'

Tags: 代码namepyforminputhtmltypebody
3条回答

我遇到了同样的问题,请确保将“enctype”设置为“multipart/formdata”,并在字段中使用默认值。所以你的表格应该是这样的:

<form enctype="multipart/form-data" id="addFile" action="AddFile.py">
<input type="file" name="file" id="file" value=""/><br/> 
<input type="submit" name="submit" value="Add File"/><br/>
</form>

我还在为我的表单使用JQuery处理程序,并尝试将其序列化,然后将其发布到python处理程序中,我绕过了它,一切正常,所以您也应该尝试一下。在

检查表单操作URL中是否没有GET参数。 如果您需要传递任何数据,请将其作为表单元素放入要与上载文件一起发布的表单中。 然后在cgi.FieldStorage中找到所有发布的变量。在

编辑:完全错过了你所在的部分doing keep_blank_values = 1;对不起,不知道出了什么问题。在

来自http://docs.python.org/library/cgi.html

Form fields containing empty strings are ignored and do not appear in the dictionary; to keep such values, provide a true value for the optional keep_blank_values keyword parameter when creating the FieldStorage instance.

因此,之所以发生这种情况,是因为该字段留空。在

相关问题 更多 >