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

时间:2011-08-08 20:57:18

标签: google-app-engine

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

Picasa upload data

我怎么能

  1. 仅包含文件的字段
  2. 获取上传文件的文件名?

3 个答案:

答案 0 :(得分:1)

假设数据是使用表单发布的,对于#2,请参阅Get original filename google app engine

对于#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')])

希望能帮到你

萨姆

答案 1 :(得分:1)

  1. 获取仅包含文件的字段

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

    filenames = [f.filename for f in files]
    
  3. 修改:已更正的代码段,现已通过测试:)

答案 2 :(得分:1)

filename = self.request.POST['file'].filename
file_ext = self.request.POST['file'].type 

filename = self.request.params[<form element name with file>].filename