Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
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'