Upload propre via Typo3

Un article de Typo3 CMS / Documentation Typo3 / Support Typo3.

Aller à : Navigation, Rechercher

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...