Fichier 'C: XAMPP TMP PHP3226.TMP' n'a pas pu être renommé. Il existe déjà une erreur dans Zend, comment faire?
-
13-11-2019 - |
Question
J'utilise cette fonction pour télécharger des fichiers sur le disque:
$talentFolderPath = 'C:/xampp/htdocs/project/';
public function uploadToDisk($talentFolderPath, $filename)
{
$adapter = new Zend_File_Transfer_Adapter_Http();
$adapter->setDestination($talentFolderPath);
$adapter->addFilter( 'Rename',array('target' => $talentFolderPath."/".$filename) );
if ($adapter->receive()) {
$message = "success";
} else {
$message = "fail";
}
return $message;
}
Et je reçois ce message:
Message: le fichier 'c: xampp tmp php3226.tmp' n'a pas pu être renommé. Il existe déjà.
Une idée de ce qui se passe?
Merci.
La solution
La Rename
Le filtre n'écrasera pas le fichier cible par défaut s'il existe déjà, ce qui semble être ce que vous vivez.
Cet extrait est sorti de Zend/Filter/File/Rename.php
if (file_exists($file['target'])) {
require_once 'Zend/Filter/Exception.php';
throw new Zend_Filter_Exception(sprintf("File '%s' could not be renamed. It already exists.", $value));
}
Pour contourner cela, vous devez passer le overwrite
option comme ceci:
$adapter->addFilter('Rename', array(
'target' => $talentFolderPath . DIRECTORY_SEPARATOR . $filename,
'overwrite' => true
));
Voir Zend_filter_file_rename pour plus de détails.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow