Fichier 'C: XAMPP TMP PHP3226.TMP' n'a pas pu être renommé. Il existe déjà une erreur dans Zend, comment faire?

StackOverflow https://stackoverflow.com/questions/9471564

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.

Était-ce utile?

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
scroll top