我想在数据库中保存重命名的文件名。
我用zend重命名文件过滤器重命名了文件。
我正在获取新的文件名,但我想将该新文件名指定为setValue
我的一个动作助手中的代码如下:
$upload = new Zend_File_Transfer_Adapter_Http();
$fileInfo = $upload->getFileInfo();
foreach ($fileInfo as $key=>$val) {
if($form->getElement($key)) {
$path = $form->getElement($key)->getAttrib('path');
$getFilePath = Application_Model_File::getFilePath($path);
$filename = $upload->getFilename();
$filterRename = new Zend_Filter_File_Rename(array('target' => $getFilePath.$val['name'], 'overwrite' => false,'fileName'=>$val['name'],'prefix'=>$key,'path'=>$getFilePath));
$upload->setDestination($getFilePath);
$upload->addFilter($filterRename);
try {
$upload->receive($key);
$FinalUploadedArray = $upload->getFileInfo();
$newFileName = $FinalUploadedArray[$key]['name'];
$form->getElement($key)->setValue($newFileName);
} catch (Zend_File_Transfer_Exception $e) {
echo $e->message();
}
}
}
我想将新文件名指定为该表单文件元素的setValue。
因此,一旦我在控制器部分中$formData = $form->getValues();
,我就会获得新文件名作为相应表单文件元素的值。
我被困在这里最近2天。
谢谢你的帮助。
答案 0 :(得分:0)
你将新值直接存储在数据库中,正如我在评论中建议的那样,
至于你的解决方案似乎有点奇怪,如果没有什么对你有用,那么你可以使用zend session
将新值传递给你的控制器。
//在会话中设置值
$session = new Zend_session_Namespace('session');
$session->newval = $newVal;
//从会话中获取价值
$session = new Zend_session_Namespace('session');
$newVal = $session->newval ;
了解有关zend session HERE
的更多信息