私はファイルをアップロードするために竜巻Webサーバーに基づいて非常に単純なpythonスクリプトを作成しようとしています。しかし、私はキーのHTMLフォームにはOKですが、 'KeyError'を取得しています。Python TornadoファイルのアップロードでKeyErrorが発生する
ここにアップロードされたファイル名を見るための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エディタで次のエラーが表示されます。 ファイル "C:/Users/Mushfique/Desktop/file-upload/upload.py"、14行目、投稿内 uploadFile = self.request.files HTMLフォーム内の[ 'MY_FILE'] [0]
KeyError: 'my_file' ERROR:tornado.access:500 POST /upload (::1) 1.00ms
けれども、私は、ファイルの入力フィールド名として 'MY_FILE' を使用しました。
Ops!私はPythonとTornadoで新しいので、私には何か知られていない問題であると思っていました。私の悪い。 :( あなたの答えは何でもありがとう。 –