Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
agat 09.07.2007 17:03
была возможность передать форму прямиком, я б не создавал треда.################################################ @makeUri[hParams][hFields] $hParams[^hash::create[$hParams]] $hFields[$hParams] $hFields[^hFields.union[$form:tables]] $hFields[^hFields.union[$form:fields]] ^if(def $hParams.hExclude && $hParams.hExclude is "hash"){ ^hFields.sub[$hParams.hExclude] ^hFields.sub[$.hExclude[]] } $result[$hParams.targetUrl^if($hFields){?^hFields.foreach[sField;uValue]{^if($uValue is "table"){^uValue.menu{$sField=^taint[uri][$uValue.field]}[&]}{$sField=^taint[uri][^if($uValue is "file"){^getNameFromFile[$uValue]}{$uValue}]}}[&]}] # end of @makeUri[] ################################################ @getNameFromFile[fFile][sDir;tFile;sFileName] $sFileName[^makeFileName[$fFile.name]] $sDir[$DATA_DIR/formData] ^if(-d $sDir){ $tFile[^file:list[$sDir]] } ^if($tFile){ ^while(^tFile.locate[name;$sFileName]){ $sFileName[^makeFileName[$fFile.name]] } } ^fFile.save[binary;$sDir/$sFileName] $result[$sFileName] # end of @getFormFileName[] ################################################ @makeFileName[sFileName] $result[^makeRandomID[].^file:justext[$sFileName]] # end of @makeFileName[] ################################################ @getFileFromName[sFileName][sDir;tFile] $sDir[$DATA_DIR/formData] ^if(-d $sDir){ $tFile[^file:list[$sDir]] } ^if($tFile && ^tFile.locate[name;$sFileName]){ $result[^file::load[binary;$sDir/$sFileName]] ^file:delete[$sDir/$sFileName] }{ $result[] } # end of @getFileFromName[]Юзаем примерно так
^if($form:thumb is "file"){ $fThumb[$form:thumb] }{ $fThumb[^getFileFromName[$form:thumb]] }Что это такое? Пришедшие файлы из формы мы аккуратненько сохраняем на диск, и по первому требованию отдаем и затираем. Что-то типа временного хранилища. Почти хешфайл ). поставленная задача решена полностью.