使用谷歌应用引擎接收多文件帖子

时间:2009-10-01 11:55:26

标签: google-app-engine

我想从图片上传器收到多个文件帖子。(i use this) 大多数示例显示如何从帖子接收一个图像。

我尝试了很多方法,但从未得到过结果。 例如

self.request.POST['Filename']

只提供第一个文件名。

发布时有多个文件/图片时该怎么办?

这样做的原因是在上传图片之前调整大小,这对于Google应用引擎来说太大了 上传。

编辑:

self.request.POST.multi.__dict__

显示

{'_items':
[('Filename', 'camila1.jpg'),
('Filedata[]', FieldStorage('Filedata[]', 'camila1.jpg')),
('Upload', 'Submit Query\r\n--negpwjpcenudkacqrxpleuuubfqqftwm----negpwjpcenudkacqrxpleuuubfqqftwm\r\nContent-Disposition: form-data; name="Filename"\r\n\r\nbornToBeWild1.jpg'),
('Filedata[]', FieldStorage('Filedata[]', 'bornToBeWild1.jpg')),
('Upload', 'Submit Query')]}

4 个答案:

答案 0 :(得分:3)

你的flash上​​传程序设计用于PHP并发送多个Filedata []字段(php将其解释为数组以便于访问)

所以你需要迭代并全部完成它们:

def post(self):
  for file_data in self.request.POST.getall('Filedata[]'):
     logging.info(file_data.filename)

数据应为file_data.value

答案 1 :(得分:1)

您使用的是Django库吗?如果是,check this out

答案 2 :(得分:1)

调用self.request.POST.getall('Filename')以获取FieldStorage对象列表;每个包含一个文件。您可以使用.value访问文件数据,使用.name访问文件数据,使用.type访问mimetype。

答案 3 :(得分:0)

我不知道多重上传器是如何工作的,但是我在过去做了一个,我只是在输入字段名称的末尾添加了一个数字,然后隐藏它。然后添加新文件输入字段以添加另一个文件。这样做的原因是它们不允许您使用输入文件字段,因为您可以上传它们不希望您上传的文件。

使用我的约定,在您的示例中,示例中的2个文件将是“Filename0”和“Filename1”。您还可以使用firebug来查看将输入文件字段重命名为的内容。

编辑:我看了一下,它正在使用闪光灯。所以我不知道它是如何运作的。