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 对象有一个文件名属性。

于 2008-11-06T15:08:50.823 回答