Bonjour
Je fais des upload des photo/image en fonction des rubrique, j'ai un e formulaire qui me permet de crée des rubrique ainsi que les dossiers concernées
lors que j'utilise mon formulaire d'upload pour les phots/images ils vont dans le bon répértoire mais mais pas dans le bon dossier
Ci-dessous mon controller pour l'upload
V<?php
App::uses('AppController', 'Controller');
class GalleriesController extends AppController {
public $name = 'Galleries';
public $helpers = array('Text','Form','Html', 'Session', 'Date');
public $components = array('Img');
public function beforeFilter(){
parent::beforeFilter();
$this->layout = 'gallery';
}
function rubrique($rubrique){
$cat = $this->Gallery->Rubrique->find('first',array(
'conditions' => array('slug' => $rubrique)
));
if(empty($cat))
throw new NotFoundException('Aucune rubrique ne correspond a cet ID');
$d'galleries'] = $this->Paginate('Gallery',array('type'=>'image','rubrique_id'=> $cat'Rubrique']'id']));
$this->set($d);
$this->render('index');
}
public function show(){
$this->loadModel('Rubrique');
$d'rubriques'] = $this->Rubrique->find('list');
$this->set($d);
if($this->request->is('post')){
$data = $this->request->data'Gallery'];
// Création du dossier galerie
$dir = IMAGES.'phototheque'.'/'.$data'rubrique_id'];
if(!file_exists($dir))
mkdir($dir,0777);
//debug($dir);die();
// création du sous dossier image
$dir .= DS.date('M');
if(!file_exists($dir))
mkdir($dir,0777);
$f = explode('.',$data'file']'name']);
$ext = '.'.end($f);
$filename = Inflector::slug(implode('.',array_slice($f,0,-1)),'-');
// Sauvegarde dans la base de données
$success = $this->Gallery->save(array(
'name' => $data'name'],
'url' => 'phototheque'.'/'.$data'rubrique_id'].'/'.date('M').'/'.$filename.$ext,
'rubrique_id' => $data'rubrique_id']
));
debug($dir);die();
if($success){
move_uploaded_file($data'file']'tmp_name'],$dir.DS.$filename.$ext);
//On parcourre les different de format de media
foreach(Configure::read('Gallery.formats') as $k =>$v){
$prefix = $k;
$size = explode('x',$v);
$this->Img->crop($dir.DS.$filename.$ext,$dir.DS.$filename.'_'.$prefix.'.jpg',$size[0],$size[1]);
}
}else{
$this->Session->setFlash("L'image n'est au bon format","notif",array('type'=>'error'));
}
}
$d = array();
$d'galleries'] = $this->Gallery->Rubrique->find('all',array(
'conditions' => array('rubrique_id' >= 0)
));
//debug($d);die();
$this->set($d);
}
public function voir($cat,$id){
$data'galleries']=$this->Gallery->find("first",array(
'conditions' => array('id' =>'$id','cat'=>'$cat')
));
$this->set($data);
}
function admin_delete($id){
$this->Gallery->delete($id);
$this->Session->setFlash("L'image a bien été supprimé","notif");
$this->redirect($this->referer());
}
}
Mon model
<?php
class Rubrique extends AppModel {
public function afterfind($data){
foreach ($data as $k => $d){
if(isset($d'Rubrique']'slug']) && isset($d'Rubrique']'id'])){
$d'Rubrique']'link'] = array(
'controller' => 'galleries',
'action' =>'Rubrique',
'slug' => $d'Rubrique']'slug']
);
}
$data$k] = $d;
}
return $data;
}
public function beforeSave(){
if(empty($this->data'Rubrique']'slug']) && isset($this->data'Rubrique']'slug']) && !empty($this->data'Rubrique']'name']))
$this->data'Rubrique']'slug'] = strtolower(Inflector::slug($this->data'Rubrique']'name'],'-'));
return true;
}
}
?>
Débug lors de l'upload
\app\Controller\GalleriesController.php (line 60)
'E:\wamp\www\malagasy\app\webroot\img\phototheque/2\Apr'
A la place du 2 je voudrais avoir le nom de la rubrique qui existe déja
je vous remercie de votre aide
cafreunion