| Новости | 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'