parser

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

 

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

Видимо вы не понимаете проблемы в данном случае

Modjo7 13.08.2008 16:30 / 13.08.2008 16:54

Есть задача: загрузить фотки (логично предположить, что в той последовательности, которую выбрал пользователь)

Ищем решение: смотрим в хелп - ага, есть пример с ^form:files.objects.foreach ...

Результат: фотки загружаются всегда в той последовательности, в которой указал пользователь, исключение: кол-во фоток равно 3, тогда они загружаются в порядке 2, 0, 1. Почему? - http://www.parser.ru/forum/?id=67431 (но это не объясняет, почему в остальных случаях, перебор элементов идет по порядку 0, 1, 2, 3, 4, 5, ...)

Тогда какой смысл вообще использовать foreach для хэша $form:files... ?

Не знаю кто как, но я лично ожидал от выполнения кода из хелпа логичного результата: загрузки фоток в той последовательности, которую выбрал пользователь.

По-любому новички будут сталкиваться с этим "неожиданным" результатом, используя пример из хелпа, ожидая совсем другой результат.

Предлагаю добавить в хелп пример, который делает то, что ожидает от него разработчик, а в нынешнем заметно отметить, что порядок перебора загруженных файлов не определён.
^if(def $form:picture){
	Загружено фоток: ^form:files.picture._count[]
	^for[i](0;^form:files.picture._count[]-1){
		$f[$form:files.picture.$i]
		$i : $f.name ($f.size)
		^f.save[binary;/upload/pictures/${i}.^file:justext[$f.name]]
	}[<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="submit" value="OK" />
</form>