Bonjour à tous,
J'ai deux applications qui sont sur deux sous domaines différents mais qui utilisent la même base de données.
J'ai donc une table Users avec une photo de profil. Je stocke l'extention de la photo et la renomme avec l'id de l'utilisateur. Je la déplace dans un dossier photos qui est dans img.
Les photos sont donc sur un des deux sous domaine et je fait donc appel à ces images via l'url complete du sous domaine où elles sont stockées.
Ca ne me semble pas très propre mais je ne sais pas trop ce que j'ai comme alternative.
Mon plus gros problème est : je peux éditer un profil via les deux applications, donc sur la première où sont stockées les photos pas de problème. Mais sur la seconde, je doit déplacer les photos sur un autre sous domaine. Et c'est la que ça coince ..
Quelqu'un a une idée de comment je pourrait organiser tout ça ?
Merci beaucoup :)
Bryan
Bonjour,
dans ton cas si tu es sur le même serveur, effectivement il te suffirait soit :
Configure::write('Upload.path', '/home/.../upload/shared');
Enfin, dernière solution qui serait pas si itu avais deux serveurs distincts, c'était de passer par le cloud d'amazon (payant), ou bien dropbox (gratuit jusqu'à 2 Go). L'idée avec Dropbox c'est comme sur un PC classique tu as un repertoire sur ton serveur qui pointe vers ton Drop et qui se synchronise. Il te suffit du coup de l'installer sur chacun de tes serveurs, dans le répertoire de ton choix. Même pas beson de jouer avec la config ni rien, c'est un vrai répertoire.
Bon courage à toi.
Il te suffit de supprimier les règles dont tu n'as pas besoin :
$this->validator()->remove('champnonpresent1');
$this->validator()->remove('champnonpresent2');
$this->validator()->remove('champnonpresent3');
Salut,
oui mais que je stockerais ou du coup ? parce que je n'ai pas essayé mais je peux faire un move dans une url autre que celle de mon fichier qui se charge du move ?
Tu peux mettre ça dans un dossier extérieur au dossiers des projets, les 2 apps sont sur le meme serveur ?
Yep, même serveur, sous domaines différents. Et du coup comme je pointe les sous dom sur les dossiers webroot, j'ai pas d'endroit commun aux deux apps.
Bonsoir.
Étant donné que tu ne l'as pas précisé, je suppose que ça concerne la V2.
Vu que je n'ai pas testé, je ne peux pas te certifier que ce serait fonctionnel, mais sait-on jamais.
Tu pourrais utiliser ceci : Chemins de Classe Supplémentaires.
Je ne donne pas de précision supplémentaire étant donné que la documentation explique correctement et ce système te permettrait de pouvoir partager plusieurs fonctionnalités entre tes deux applications.
Comme ça, tu pourras par exemple créer ton système d'upload pour qu'il soit partagé par tes deux applications.
Merci, je vais essayer tout ça.
Autre petite question qui concerne également l'upload, j'ai un formulaire ou j'ai entre autre l'upload, mais aussi des informations d'un autre modèle, donc je save avec un saveAssociated. Tout fonctionne bien mais uniquement quand je met la validation à false.
Dans mon modèle j'ai des règles de validation qui ne concerne pas ce formulaire, je suis donc obligé d'indiqué quel champ je veux valider et voici commment j'ai mis en place ça :
// Si il y a une photo de profil chargée alors on la valide sinon on valide que les autres champs
if (!empty($this->request->data['User']['photo_file']['tmp_name'])) {
$this->User->validates(array('fieldList' => array('adresse', 'code_postal', 'ville', 'photo_file')));
}
else{
$this->User->validates(array('fieldList' => array('adresse', 'code_postal', 'ville')));
}
// On sauvegarde
if ($this->User->saveAssociated($this->request->data, array('validate' => false)))
{
// Confirmation
$this->Session->setFlash(__('Votre profil a bien été mis à jour.'));
return $this->redirect(array('action' => 'my_informations'));
}
Dans l'éxemple donné, si je met la validation à true il me check toutes les règles, et évidemment il y en a qui n'existe pas dans ce formulaire. Comment je peux appliquer mon $this->User->validates qui est dans ma condition ?