ZendFramework Zend_Form_Element_File setDestination vs фильтр переименования - PullRequest
0 голосов
/ 17 марта 2010

Код говорит, что Zend_Form_element_File :: setDestination () устарел и использует фильтр переименования. Однако фильтр переименования в настоящее время имеет коды, так что когда задан путь, дается только временное имя. Исходное имя файла потеряно.

<?php
$file = new Zend_Form_Element_File();
$file->setDestination('/var/www/project/public');
?>

против

<?php
$file = new Zend_Form_Element_File();
$file->addFilter('Rename', array('target' => '/var/www/project/public'));
?>

Любое решение для загрузки файлов, чтобы оно сохранило исходную структуру имени файла, но проверило наличие существующего файла и добавило _1.ext или _2.ext?

Ответы [ 2 ]

1 голос
/ 05 июля 2011

Вам необходимо запросить имя файла после загрузки, а затем добавить фильтр переименования.Например:

if ($form->file->isUploaded()) {
    $fileinfo = $form->file->getFileInfo();
    $filename = $fileinfo['file']['name'];
    $extn = pathinfo($filename,PATHINFO_EXTENSION);
    $uploadname = $this->_makeFilename($formData, $extn);
    $uploadfilepath = UPLOADED_FILES_PATH . '/' . $uploadname;
    $form->file->addFilter('Rename', $uploadfilepath);
    $receiveStatus = $form->file->receive();
}
0 голосов
/ 17 марта 2010

После отправки формы вы можете проверить $_FILES['file_element']['name'] проверку на наличие существующих файлов, а затем установить фильтр переименования для элемента формы перед вызовом:

$form->getValues()/isValid() or $form->file_element->receive().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...