letty Posted February 12, 2011 Share Posted February 12, 2011 Bonjour,je tente de développer seule un module qui requiert côté admin l'upload d'une image. J'arrive parfaitement à intégrer mes données dans la table prévue à cet effet mais impossible d'uploader mon image dans mon dossier que ce soit à la racine du module, ou dans un dossier "mesimages" dans le répertoire principal img.Voici la partie de code du formulaire concernant l'upload : <INPUT TYPE="HIDDEN" NAME="MAX_FILE_SIZE" VALUE="500000"> <INPUT NAME="mon_img" TYPE="FILE"> // pour la partie formulaire Par soucis de lisibilité j'ai enlevé le code d'insertion pour insérer les données dans la BDD private function _postProcess() { $dirname = $this->_modulePath . 'img/'; move_uploaded_file($_FILES['fichier']['tmp_name'], $dirname.'/$_FILES["fichier"]["name"]'); } J'ai tout testé pour $chemin_destination, j'ai beau vider le cache, rafraîchir etc... aucune image n'apparaît. J'ai même testé avec le chemin complet http://locahost:8888/maboutique/modules/monmodule/img... RIEN!Je précise que je travaille en local! Mais je ne vois pas mon erreur. Avez-vous une idée, une piste à me suggérer ?Merci par avance :) Link to comment Share on other sites More sharing options...
Broceliande Posted February 13, 2011 Share Posted February 13, 2011 Regarde du côté de la configuration de php.iniEssentiellement dans cette section il te faut avoir; Whether to allow HTTP file uploads.file_uploads = On; Temporary directory for HTTP uploaded files (will use system default if not; specified).upload_tmp_dir = /tmp; Maximum allowed size for uploaded files.upload_max_filesize = xxxMfile_uploads = On active l'upload/tmp doit avir des droits ouverts en ecriture pour apacheupload_max_filesize = xxxM c'est la taille xxx en Mega du plus gros fichier uploadable Link to comment Share on other sites More sharing options...
BVince Posted February 14, 2011 Share Posted February 14, 2011 Bonjour,petit détail qui a peut être son importance, dans ta page de POST, tu as move_uploaded_file($_FILES['fichier']['tmp_name'], $dirname.'/$_FILES["fichier"]["name"]'); alors que ton champ du formulaire est <INPUT NAME="mon_img" TYPE="FILE"> la page de post devrait être : move_uploaded_file($_FILES['mon_img']['tmp_name'], $dirname.'/'.$_FILES["mon_img"]["name"]); non ? Link to comment Share on other sites More sharing options...
letty Posted February 14, 2011 Author Share Posted February 14, 2011 Merci pour vos réponses, j'ai effectué les changements que vous m'avez indiqué mais rien ne se passe. Mon dossier img reste vide J'ai pourtant mis mon dossier en CHMOD777C'est à n'y rien comprendre... Je sais que j'ai toujours eu des soucis en local pour du upload mais là je m'aide d'autres modules pour développer et qui marche donc je ne vois pas pourquoi ça peut bloquer. Ou bien, étant sur MAC, j'ai mal configuré mes autorisations de dossier...Ou alors est-ce qu'il n'est pas possible de demander dans une fonction 2 requêtes ?le code complet en _postProcess private function _postProcess(){ if(Tools::isSubmit('submit')){ $img = Tools::getValue('mon_img'); $id_product = Tools::getValue('id_product'); $dirname = $this->_modulePath . 'img/'; move_uploaded_file($_FILES['mon_img']['tmp_name'], $dirname.'/'.$_FILES["mon_img"]["name"]); mysql_query("INSERT INTO ps_monmodule(`id_product`, `img`) VALUES ('$id_product','$img')"); } } Link to comment Share on other sites More sharing options...
Broceliande Posted February 14, 2011 Share Posted February 14, 2011 Je rejoint BVince qui a tout à fait raison concernant le nom du champ.Mais tu sembles avoir corrigé et cela ne marche toujours pas...Je me demande si ton path est correct (je n'ai pas trop le temps de vérifier), or les move de fichiers se font en path absolu 'serveur'tu peux essayer ça : $dest =_PS_ROOT_DIR_ . '/modules/' . $this->name . '/img/'; move_uploaded_file($_FILES['mon_img']['tmp_name'],$dest.$_FILES["mon_img"]["name"]); Link to comment Share on other sites More sharing options...
letty Posted February 14, 2011 Author Share Posted February 14, 2011 Merci de ta réponse. J'ai testé mais l'image est envoyé nul part Je l'aurai, je l'aurai! ... ou pas!EDIT : ça marche !!! Et j'ai honte d'avouer mon erreur de débutante... Forcément ça risquait pas de marcher en oubliant l'attribut enctype="multipart/form-data" dans mon formulaire. Ça servira à d'autres et je ne ferais plus la con**rie :-D Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now