Google app engine 如何使用GAE从上传的文件/表单中提取文件名?

Google app engine 如何使用GAE从上传的文件/表单中提取文件名?,google-app-engine,Google App Engine,以下数据已上载到我的GAE应用程序- 我怎么能 仅获取包含文件的字段 获取上传文件的文件名 假设数据是使用表单发布的,对于#2,请参见 对于#1,您可以迭代self.request.POST multidict,查看任何看起来像文件的内容。self.request.POST如下所示: UnicodeMultiDict([(u'file_1',FieldStorage(u'file_1',u'filename_1')),(u'random_string_field',u'random_strin

以下数据已上载到我的GAE应用程序-

我怎么能

  • 仅获取包含文件的字段
  • 获取上传文件的文件名

  • 假设数据是使用表单发布的,对于#2,请参见

    对于#1,您可以迭代self.request.POST multidict,查看任何看起来像文件的内容。self.request.POST如下所示:

    UnicodeMultiDict([(u'file_1',FieldStorage(u'file_1',u'filename_1')),(u'random_string_field',u'random_string_value'))

    希望这能帮到你

    -萨姆

  • 仅获取包含文件的字段

    import cgi
    
    values = self.request.POST.itervalues()
    files = [v for v in values if isinstance(v, cgi.FieldStorage)]
    
  • 获取上载文件的文件名

    filenames = [f.filename for f in files]
    
  • 编辑:已更正的代码段,现已测试:)

    filename = self.request.params[<form element name with file>].filename
    
    filename=self.request.params[].filename
    
    查看任何看起来像文件的内容-问题是如何识别它;)moraes,我得到了“不可索引”错误:
    File”/base/data/home/apps/picasa2vkontakte/1.352422470709739983/picasa2vkontakte.py”,第138行,在post files\u arguments.extend中(如果是instance(v,cgi.FieldStorage),则表示值中的v)
    谢谢,moraes。如果我使用这种方法,我如何获得上传文件的大小<代码>对于文件中的单个文件:len(单个文件)/(1024.0*1024.0)返回
    不可索引的
    错误。以及如何获取文件内容以将其存储在数据存储中
    photo\u file.file=db.Blob(单个文件)
    ?(找不到任何关于文件及其属性(如.filename)的文档)它们是FieldStorage实例,因此
    contents=single_file.value
    。那就把里面的东西拿出来。文件:
    filename = self.request.params[<form element name with file>].filename