Kod mówi Zend_Form_element_File ::Metoda setDestination () jest przestarzała i używa filtra zmiany nazwy. Jednak filtr zmiany nazwy jest obecnie kodowany tak, że po ustawieniu ścieżki podana jest tylko nazwa tymczasowa. Oryginalna nazwa pliku jest tracona.
<?php
$file = new Zend_Form_Element_File();
$file->setDestination("/var/www/project/public");
?>
vs
<?php
$file = new Zend_Form_Element_File();
$file->addFilter("Rename", array("target" => "/var/www/project/public"));
?>
Jakiekolwiek rozwiązanie do przesyłania plików, aby zachować oryginalną strukturę nazw plików, ale sprawdza istniejący plik i dołącza _1.ext lub _2.ext?
Odpowiedzi:
0 dla odpowiedzi № 1Po przesłaniu formularza możesz sprawdzić $_FILES["file_element"]["name"]
sprawdź istniejące pliki, a następnie ustaw filtr zmiany nazwy w elemencie formularza przed wywołaniem:
$form->getValues()/isValid() or $form->file_element->receive()
.
1 dla odpowiedzi nr 2
Po przesłaniu zapytania musisz podać nazwę pliku, a następnie dodać filtr Zmień nazwę. Na przykład:
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();
}