如何以正确的顺序处理上传的文件?

时间:2011-08-09 08:55:27

标签: google-app-engine

假设我有以下表格,包含2个文件:

<!-- the field below contains actual upload file -->
<input type=hidden name="http://localhost:XXXX/some_unique_name_generated_by_Picasa_and_not_controlled_by_me"> 
<!-- the name of field below is equal to the uploaded above filename -->
<input type=hidden name="DSC04310.jpg" value="description of first file">

<input type=hidden name="http://localhost:XXXX/some_unique_name_generated_by_Picasa_and_not_controlled_by_me"> 
<input type=hidden name="DSC04306.jpg" value="description of second file">

不知何故,当他们上传时,我会以不同的顺序在服务器上获取它们 - DSC04306.jpg 然后 DSC04310.jpg 。我用:

arguments = self.request.arguments()
files_arguments = []               
for argument in arguments:
    if 'localhost' in argument: # choose files only, not other fields
        files_arguments.append(argument) 

但是我需要按照它们在表单中的顺序处理它们。 我想到了以下解决方案:

<input type=hidden name="http://localhost:XXXX/some_unique_name"> 
<input type=hidden name="DSC04310.jpg" value="description of first file">
<input type=hidden name="seq_DSC04310.jpg" value="1">

<input type=hidden name="http://localhost:XXXX/some_unique_name"> 
<input type=hidden name="DSC04306.jpg" value="description of second file">
<input type=hidden name="seq_DSC04306.jpg" value="2">

这是好方法吗?如果是,那么如何根据files_arguments字段中的值对seq_FILENAME中的值进行排序?

1 个答案:

答案 0 :(得分:1)

不要使用request.arguments(),除非您希望请求中的所有密钥包括查询字符串中的密钥(而不仅仅是POST)。此外,未订购

相反,迭代request.POST值,因为它是有序的。您可以使用request.POST.iteritems()request.POST.itervalues()

for key, value in self.request.POST.iteritems():
    # ...