/ / ZendFramework Zend_Form_Element_File setDestination срещу филтър за преименуване - zend-framework

ZendFramework Zend_Form_Element_File setDestination срещу филтър за преименуване - zend-framework

Кодът казва 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?

Отговори:

0 за отговор № 1

След изпращане на формуляра можете да проверите $_FILES["file_element"]["name"] проверете за съществуващи файлове и след това задайте филтъра за преименуване на формулярния елемент, преди да извикате:

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


1 за отговор № 2

Трябва да попитате името на файла след качването и след това да добавите филтъра Преименувайте. Например:

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();
}