j'ai actuellement un site en hébergé chez 1and1, je rencontre des problèmes avec l'upload de fichier. Dans info.php j'ai vue que upload_tmp_dir etait à "no value". J'ai donc demandé chez 1and1 et ils me disent de placer un fichier php.ini à la racine du site avec juste la valeur que je veux modifier. Mon soucis est justement cette valeur que mettre ??? j'ai créé un répertoire que j'ai nommé "tmp" dans le php.ini dois-je mettre upload_tmp_dir = "/tmp" ou autre chose ?
oui mais le problème c'est que je n' ai pas accès au fichier php.ini du serveur et c'est pour cela je suppose qu'ils me disent de mettre un fichier php.ini à la racine du site avec la valeur à modifier. Franchement je trouve bizarre leur solution !!
Warning: move_uploaded_file(fichiers_internes/these/classification.txt) [function.move-uploaded-file]: failed to open stream: No such file or directory in /homepages/../....../htdocs/..../Admin/catalogue/uploader.php on line 29
Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/php31iXGO' to 'fichiers_internes/these/classification.txt' in /homepages/../......./..../Admin/catalogue/uploader.php on line 29
dans le php.ini j'ai mis cela upload_tmp_dir = "/tmp" mais sans succès !!!
Voir les paramètres de la fonction move-uploaded-file à la ligne 29 de votre script,
"fichiers_internes/these/" : c'est un chemin sur votre serveur ou en local sur votre pc connecté au net ?
parce que
Unable to move '/tmp/php31iXGO' to 'fichiers_internes/these/classification.txt'
me fait penser que le fichier est bien "uploadé" dans le dossier tmp et se nomme à ce moment "php31iXGO" mais il doit ensuite être déplacé [function.move-uploaded-file] dans un dossier à préciser de votre site et être au passage renommé par php ?
donc on devrait peut-être indiquer un chemin du type : /homepages/../......./..../Admin/catalogue/mondossierupload ou ./fichiers_internes/these/ ??? ---- Les fichiers sont uploadés de façon temporaire dans le upload_tmp_dir, tant que le script s'execute. A la fin d'execuion du script, le fichier temporaire est supprimé donc si tu ne le déplaces pas avec la commande move_uploaded_file, tu "perds" le fichier.
où $dossier est égal à fichiers_internes/ $sous_dossier est égal à these/ et enfin $fichier est le nom du fichier ici par exemple classification.txt
alors ce script fonctionne normalement en local (pc windows xp pro au bureau) mais dès que je passe sur le serveur chez 1and1 j'ai chez fameux messages d'erreur. j'ai donc cherché sur google et autre une réponse et j'en suis arrivé à la conclusion que 1and1 ne donnais pas de chemin de fichier temporaire car en regardant dans info.php j'ai pour valeur sur la ligne upload_tmp_dir "no value" (sur les deux colonnes).
Remarque sur mon pc perso chez moi (windows xp pro) j'ai les mêmes messages d'erreur avec le même script et pourtant dans le php.ini j'ai bien upload_tmp_dir = "c:/wamp/tmp" et file_uploads = "on" ; c'est pourquoi je suis perplexe
maintenant je peux me tromper, et le problème ne viendrais pas de ces paramètre mais dans ce cas lequel ?
bien finalement je viens de trouver mon erreur et non pas un blocage de chez 1and1, je leur présente mes excuses pour tous ce que j'ai pensé d'eux !!!
"dval" vous avez raison le chemin pour le dossier où le fichier doit être enregistré le fichier téléchargé n'était pas fichiers_internes mais ../../fichiers_internes !!! J'avais déplacé le fichier dans un autre répertoire du site sur le serveur pour raison logique d'arborescence, mais hélas oublié de modifier le chemin de cette partie du script.
Pourquoi ne pas indiquer la « racine » de n'importe quel site par :
$_SERVER['DOCUMENT_ROOT']
plutôt que de s'embêter à calculer le nombre de fois qu'il faut remonter d'un niveau.
De plus, cette façon de procéder est indispensable sur les hébergeurs mutualisés qui « migrent » les sites d'une machine à une autre, ce qui fait que le chemin absolu d'un fichier change.
On peut aussi calculer une variable, par exemple "$niveau", qui contiendra soit "./", soit "../" le nombre de fois nécessaires pour revenir à la racine du site avec :
//Recherche du niveau d'arborescence - Retourne "./" ou "./../" le nombre de fois nécessaire //Le fichier "ici_racine.php" doit exister à la racine du site function ou_est_on() { for($i=1,$dossier='./';$i<=5 && !file_exists($dossier.'ici_racine.php');$i++,$dossier.='../') if ($i==5) { echo "Localisation impossible"; return false; } return $dossier; }
Je dirais que je suis « partisan du moindre effort » et que c'est l'expérience qui parle.
En effet, les sites que je développe en local, utilisent la variable mentionnée dans ma précédente contribution ainsi que la fonction ou_est_on(). Ces sites sont transférés par FTP ou par copie de fichiers : - Chez Free - Chez 1and1 - Sur des CD-ROM sous Microweb - Sur des clés USB sous Microweb Je n'ai strictement rien à modifier avant les transferts ou les copies parce que tous les chemins des fichiers et des pages sont en relatif.
Microweb, je ne connaissais pas, mais quelle heureuse surprise ! je suppose qu'il s'agit de ceci [indigostar.com] ça a l'air bien pratique et le soft existe depuis 1998 si j'ai bien vu. Je crois que je vais tester le produit car je dois régulièrement fournir des listes et documentations sur CD et voila un système dynamique qui a bien l'air de correspondre de façon complète et éprouvée à ce que je recherche...
Encore une fois merci pour tous ces bons filons que tu nous fais découvrir au fil du temps.
Bien à toi.
Dval (depuis la Belgique, enfin encore pour l'instant... pfff. quel pays :-)
Microweb est léger, simple et, avantage important, fonctionne avec les bases de données MySql. Pour peu que l'on paramètre correctement microweb.ini, on peut même travailler sur des recopies des bases, donc avec ajouts dans celles-ci.
J'utilise la version 1.50 sur laquelle j'ai adjoint PhpMyAdmin de Wamp par simple recopie du dossier complet ainsi que les versions nouvelles de MySql.
Je n'ai pas essayé la version 2.0 qui intègre MySql 5.0.27.
J'envoie des CD de mes sites à mes anciens copains d'école professionnelle qui, dans leur campagne reculée, n'ont pas d'accès ADSL.
J'ai téléchargé et installé la 1.50, effectivement c'est très simple et ça fonctionne super. je vais tester un peu ce W.E. avec une base mysql pour aller plus loin. merci encore !