Vous pouvez le faire "comme d'habitude" en PHP. Je l'ai fait il y a quelques jours comme celui-ci:
$path = "/img/avatars/";
$dir = getcwd().$path;
$avatarFile = "$dir$id.png";
if (isset($this->data['User']['avatar']) && $this->data['User']['avatar']['error'] == 0) {
$avatar = $this->data['User']['avatar'];
if (!is_uploaded_file($avatar['tmp_name'])) $this->Utils->panic($avatar);
if (in_array($avatar['type'], array('image/jpeg','image/pjpeg','image/png'))) {
// load image
list($width, $height) = getimagesize($avatar['tmp_name']);
$width = $height = min($width, $height);
if (in_array($avatar['type'], array('image/jpeg','image/pjpeg')))
$source = imagecreatefromjpeg($avatar['tmp_name']);
else
$source = imagecreatefrompng($avatar['tmp_name']);
// resize
$thumb = imagecreatetruecolor(128, 128);
imagecopyresized($thumb, $source, 0, 0, 0, 0, 128, 128, $width, $height);
// save resized & unlink upload
imagepng($thumb, $avatarFile);
$success &= true;
} else {
$this->User->invalidate('avatar', __("Only JPG or PNG accepted.",true));
$success &= false;
}
unlink($avatar['tmp_name']); // Delete upload in any case
}
Il va même redimensionner pour vous toujours à 128x128, vous pouvez ignorer cela et simplement renommer l'image téléchargée sur le répertoire cible. Google vous aidera également, il n'y a rien de spécifique à Cake pour les téléchargements de fichiers.
Le formulaire de téléchargement:
echo $form->create('User', array(
'enctype' => 'multipart/form-data',
'type' => 'post',
));
echo $form->input('avatar', array('type' => 'file', 'label' => __('Avatar:',true)));
Informations complémentaires: Les fichiers téléchargés sont principalement stockés dans le système de fichiers, et une référence à elle (nom de fichier) dans le DB. Ne stockez pas les fichiers dans la base de données. Dans mon cas, je n'ai rien stocké dans la base de données, car chaque utilisateur ne peut avoir qu'un seul avatar, donc je viens d'écraser le fichier existant, aucune référence dans la base de données n'est requise. – sibidiba
Merci pour votre réponse chaleureuse ....... je veux télécharger l'image dans le dossier pas dans la base de données.Si vous avez du code s'il vous plaît aidez-moi, actuellement je m en utilisant la version 1.3 de cakephp Merci presque – manish
Presque pourrait copier votre exemple. Merci! – nicojs