假设我有以下表格,包含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
中的值进行排序?
答案 0 :(得分:1)
不要使用request.arguments()
,除非您希望请求中的所有密钥包括查询字符串中的密钥(而不仅仅是POST)。此外,未订购。
相反,迭代request.POST
值,因为它是有序的。您可以使用request.POST.iteritems()
或request.POST.itervalues()
:
for key, value in self.request.POST.iteritems():
# ...