3

与えられたhtmlフォーム...

  <form id="mainform" action="/upload" enctype="multipart/form-data" method="post">
        <div>
            <input type="file" name="img"/>
        </div>
        <div>
            <input type="submit" value="Send">
        </div>
    </form>

...そしてハンドラー...

class Picture(db.Model):
  image = db.BlobProperty()

class Submission(webapp.RequestHandler):
    def post(self):
        picture = Picture()
        image = self.request.get("img")
        picture.image = db.Blob(image)
        picture.put()
        self.redirect('/')

...ユーザーがアップロード用に入力したファイル名をハンドラー内で取得する方法はありますか? PHP では、$_FILES['img']['name'] を参照できますが、request.get でどの構文が機能するかはわかりません。別の質問では、別の作成者が HTML ページで JavaScript ルーチンを使用して、OnChange イベントが発生するたびにユーザーが選択したファイル名を抽出し、隠しフィールドに個別に渡します。それは必要ですか?PHPは無料でファイル名を取得しているようです。

4

1 に答える 1

6

cgiモジュールのドキュメントで解決策を発見しました:

picture.local_filename = self.request.POST[u'img'].filename

リクエストの POST オブジェクトは FieldStorage のコレクションであり、FieldStorage オブジェクトには filename 属性があります。

于 2008-11-06T15:08:50.823 に答える