2

基本的に、ファイルを受信して​​データストアに保存しようとしています。通常、これには blobstore を使用することはわかっていますが、これは比較的小さい (おそらく 40 ~ 50 kb) テキスト ファイルであるため、blobstore を使用するのはやり過ぎです。

問題は、ファイルからデータを取得する方法が見つからないようです。ファイルの内容を含む必要がある self.request.get("data") および self.request.POST.get("data") (私が理解している限り) は、ファイル名を含む単なる文字列であり、データはありません.

Python 2.7 コードは次のとおりです。

class SubmitHandler(webapp2.RequestHandler):
    def get(self):
        user = users.get_current_user()
        if not user:
            self.redirect(users.create_login_url(self.request.uri))
        else:
            template = jinja_environment.get_template('templates/submit.html')
            self.response.out.write(template.render())

    def post(self):
        user = users.get_current_user()
        if not user:
            self.error(401)
        craft = Craft(submitter = user,
                      title = self.request.get('title'), 
                      description = self.request.get('description'), 
                      data = self.request.get("data"))
        self.redirect('view/' + (hex(craft.put().id()))[2:-1])

対応する HTML ドキュメント:

<!DOCTYPE html>
<html>
    <body>
        <form action="/submit" method="post">
        <div><textarea name="title" rows="1" cols="40" placeholder="Title"></textarea></div>
        <div><textarea name="description" rows="3" cols="40" placeholder="Description"></textarea></div>
        <div><input type="file" name="data"/></div>
        <div><input type="submit" value="Upload"></div>
        </form>
    </body>
</html>
4

1 に答える 1

2

enctype="multipart/form-data"フォームに必要な属性がありません

于 2012-11-21T22:05:30.567 に答える