Видимо вы не понимаете проблемы в данном случае
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>