代码之家  ›  专栏  ›  技术社区  ›  Thomas L Holaday

google appengine中post请求中的文件名

  •  3
  • Thomas L Holaday  · 技术社区  · 17 年前

    给出了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中,我可以引用$\u文件['img'][名称'],但是我不知道什么语法(如果有的话)可以用于request.get。在另一个问题中,另一位作者使用HTML页面中的javascript例程提取用户每次发生onchange事件时选择的文件名,然后在隐藏字段中单独传递。有必要吗?PHP似乎免费获取文件名。

    1 回复  |  直到 15 年前
        1
  •  6
  •   Thomas L Holaday    17 年前

    我发现了一个解决方案 the documentation for the cgi module :

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

    请求的post对象是FieldStorage的集合,FieldStorage对象具有文件名属性。