parser

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

 

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

Нет, не так

Vint 09.09.2012 04:24

Ваше условие тоже неправильное.
Если в $form:image придёт, например, текстовая строка, то парсер упадёт с ошибкой при попытке инвертировать значение через !.

И чего зря гадать, когда есть таблица приоритетов?
http://www.parser.ru/docs/lang/
Миша правильно про скобки сказал.

А ещё стоит группировать проверки, чтобы конечное условие легко читалось, т.е. я бы написал так:
^if(!(def $form:image && $form:image is file)){}
По поводу расширения файлов.
Не надо советовать подобные решения в лоб. Самое главное правило в таких задачах: от пользователя могут придти любые данные в любом виде. В данном случае, файл может быть без расширения вообще или с несколькими расширениями (правда, file:justext здесь нормально отработает, наверное). Но даже наличие расширения никак не гарантирует соответствие файла этому формату.
Картинки можно проверить только через ImageMagick, NConvert и смежные библиотеки.

Проверки на расширение — от лукавого и лишь усложнят последующую отладку с "проблемными" файлами.