我试图编写一个基于龙卷风Web服务器的非常简单的python脚本来上传文件。但我得到了KeyError'虽然密钥是在html格式中是可以的。
这是python代码,只是为了查看上传的文件名。
import tornado.ioloop
import tornado.web
class IndexHandler(tornado.web.RequestHandler):
def get(self):
self.write("Bismillahir Rahmanir Raheem")
self.render('form.html')
class UploadHandler(tornado.web.RequestHandler):
def post(self):
self.write("Alhamdulillah, here")
if self.request.files is not None:
self.write("Inside the if")
uploadFile = self.request.files['my_file'][0]
self.write(uploadFile['filename'])
def make_app():
return tornado.web.Application([
(r"/", IndexHandler),
(r"/upload", UploadHandler)
])
if __name__ == "__main__":
app = make_app()
app.listen(8888)
tornado.ioloop.IOLoop.current().start()
html表格如下:
<html>
<head>
<title>Testing file upload</title>
</head>
<body>
<h1>Testing file upload</h1>
<form enctype="multipart/formdata" method="post" action="/upload">
<input type="file" name="my_file"/>
<input type="Submit" name="upload" value="Upload"/>
</form>
</body>
</html>
但每次我选择一个文件并按下上传按钮我都会得到
500:内部服务器错误
在PyCharm编辑器中,我收到以下错误: File&#34; C:/Users/Mushfique/Desktop/file-upload/upload.py" ;,第14行,在帖子中 uploadFile = self.request.files [&#39; my_file&#39;] [0]
KeyError:&#39; my_file&#39;错误:tornado.access:500 POST / upload(:: 1)1.00ms
虽然在html表单中我已经使用了my_file&#39;作为文件输入字段名称。
答案 0 :(得分:1)