Я пытаюсь переименовать загруженный файл с помощью rename-addFilter. Фактическая загрузка уже работает, но файлы просто загружаются и не переименовываются, так как я могу это сделать? Вот мой контроллер-код, который загружает файл:Zend_File_Transfer: переименовать файл после загрузки
//Getting the new filename, works perfectly:
$name = explode('.', $form['pic']);
$ext = $name[1];
$mapper = new Application_Model_CmsMap();
$row = $mapper->fetchRow('childId = "' . $id . '" AND type= "pic"');
$new_filename = $row->name.'.'.$ext;
//All images will and are be stored in /public/images/
//Maybe the picture should be replaced, so it should be overwrited, in case it already exists
$upload->addFilter('Rename', array(
'target' => '/images/'.$new_filename,
'overwrite' => true,
)
);
$upload->receive();
Я думаю, вы могли бы принимать файл, прежде чем вы подаете фильтр. Если вы вызываете getValues () против формы, он получит файл. ** from reference: ** _Per default, файл будет автоматически получен, когда вы вызываете getValues () в форме. Причина такого поведения заключается в том, что сам файл является значением элемента файла. ** Так: ** _Still, иногда вы можете вызвать getValues () без получения файла. Вы можете архивировать это, вызвав setValueDisabled (true). Чтобы получить фактическое значение этого флага, вы можете вызвать isValueDisabled() ._ Я надеюсь, что это поможет ... – RockyFord
Думаю, это поможет мне в будущем. К сожалению, мне нужны данные формы, потому что я использую один контроллер для нескольких изменений. Атрибут «тип» этих форм вызывает необходимые действия для добавления или обновления базы данных или в этом случае файла. Но, как вы видите в моем собственном ответе: PHP довольно прост и работает отлично. Так зачем заботиться? – StoryTeller