parser

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

 

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

код с ошибками и написан не на парсер-е :)

Misha v.3 22.02.2010 01:13 / 22.02.2010 01:21

код выковыривания расширения можно упростить:
$ext[$ext[^fValue.name.split[.;rh]]*.${ext.0}]
=>
$ext[^file:justext[$fValue.name]]
код проверки валидности расширения -- тоже (хотя делать проверку валидности, когда маска пришла вместе с файлом из формы -- по меньшей мере странно)
# разрешенные расширения 
$fileext[^form:fileext.split[^;;v]] 
# сверяем с разрешенными
$ext_select[$extok[^fileext.select($fileext.piece eq ${ext})]^extok.count[]] 
^if($ext_select eq 0){$echo[Invalid file type.]}{$echo[1]
=>
# разрешенные расширения 
$fileext[^form:fileext.split[^;;v]] 
# сверяем с разрешенными (с учётом регистра, как и в исходном коде, что неправильно)
^if(^fileext.locate[piece;$ext]){
	$echo[1]
	...сохраняем, но делать просто ^fValue.save[binary;${form:folder}/${name}]
	как в исходном коде нельзя, т.к. может быть 2 файла с одинаковыми именами...
}{
	$echo[Invalid file type.]
}
ну и кроме двух вышеописанных проблем, приведённый код некорректно обрабатывает несколько отправленных файлов, т.к. в этом случае он вернёт что-то типа '000' или например '0Invalid file type.0'

если же, как заметил Vint, за раз загружается один файл, то огород городить с $form:files незачем и достаточно читать $form:Filedata.