Upload propre via Typo3
Un article de Typo3 CMS / Documentation Typo3 / Support Typo3.
Pour faire un upload de fichier propre dans un plugin Typo3 :
En début de classe, définir le répertoire d'upload :
var $upload = 'uploads/tx_gestiondoc/';
En début de main :
$this->fileFunc = t3lib_div::makeInstance('t3lib_basicFileFunctions');
Et ensuite lors du traitement du téléchargement :
if(isset($_FILES['new_document'])) { $fichier_temp = $_FILES['new_document']['tmp_name']; $fichier = $this->fileFunc->cleanFileName(basename($_FILES['new_document']['name'])); $chemin = PATH_site.$this->upload; $file_path = $this->fileFunc->getUniqueName($fichier, $chemin); if (t3lib_div::upload_copy_move($fichier_temp, $file_path)) { // si l'upload est completement réussi } }
Vous pouvez vérifier la taille du fichier :
if(isset($_FILES['new_document']) && filesize($_FILES['new_document']['tmp_name']) < $this->conf['maxFileSize']) { $fichier_temp = $_FILES['new_document']['tmp_name']; $fichier = $this->fileFunc->cleanFileName(basename($_FILES['new_document']['name'])); $chemin = PATH_site.$this->upload; $file_path = $this->fileFunc->getUniqueName($fichier, $chemin); if (t3lib_div::upload_copy_move($fichier_temp, $file_path)) { // si l'upload est complètement réussi } }
Vous aurez ainsi un upload qui fonctionne comme dans typo3 : lorsqu'un fichier existe déjà , il modifie le nom de fichier pour permettre la copie...
