parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Bug: хэш $form:files, при загрузке 3-х файлов криво заполняется

Modjo7 13.08.2008 01:39 / 13.08.2008 03:44

В хелпе приводится пример (немного модифицируем его):
^if(def $form:picture){ 
   <p>Загружены изображения (^form:files.picture._count[]): 
   ^form:files.picture.foreach[sNum;fValue]{ 
      $sNum : $fValue.name ($fValue.size) 
      ^fValue.save[binary;/upload/pictures/${sNum}.^file:justext[$fValue.name]] 
   }[,] 
   </p> 
} 
<form method="POST" enctype="multipart/form-data"> 
   <p>Выберите несколько изображений для загрузки:<br /> 
   <input type="file" name="picture" /><br /> 
   <input type="file" name="picture" /><br /> 
   <input type="file" name="picture" /><br /> 
   <input type="file" name="picture" /><br /> 
   <input type="file" name="picture" /><br /> 
   <input type="submit" value="OK" /> 
   </p> 
</form>
Выбираем три фотки в такой последовательности:
DSC00003.JPG
DSC00002.JPG
DSC00001.JPG
Субмитим и получаем:
Загружены изображения (3):
2 : DSC00001.JPG (159498) 
0 : DSC00003.JPG (127918) 
1 : DSC00002.JPG (121837)
После серии экспериментов, оказалость, что хэш заполняется криво только в случае, если файлов 3. Если меньше или больше - всё ок, заполняется в таком порядке как указал пользователь, т.е. 0,1,3,4...

Пока остановился на таком решении:
^if(def $form:picture){
	^for[i](0;^form:files.picture._count[]-1){
		$f[$form:files.picture.$i]
		$i : $f.name ($f.size)
		# ... флиртуем с бд ...
		# ... издеваемся над фоткой nconvert'ом ...
		# ... ja! ja! ...
		# ... etc ...
	}[<br/>]
}
<form method="POST" enctype="multipart/form-data">
   <input type="file" name="picture" /><br />
   <input type="file" name="picture" /><br />
   <input type="file" name="picture" /><br />
   <input type="file" name="picture" /><br /> 
   <input type="file" name="picture" /><br /> 
   <input type="submit" value="OK" />
   </p>
</form>
PS: версия parser3_2_3_freebsd62R_cgi_xml