Php ini_set et upload_tmp_dir

Résolu/Fermé
AmeryCourtz Messages postés 94 Date d'inscription lundi 16 février 2009 Statut Membre Dernière intervention 6 juin 2012 - 28 août 2009 à 13:20
 le père - 15 août 2011 à 10:38
Bonjour à tous,

Alors voila un exemple restreint de mon code en deux ligne :

<?php
ini_set("upload_tmp_dir","MonRep/Photo" );
echo(ini_get('upload_tmp_dir'));
?>


Et oui, un truc tout bête, je veux juste donner une nouvelle valeur à mon upload_tmp_dir pour des photos temporaire, mais impossible de faire fonctionner ce code.

Pourtant je n'ai aucun soucis pour modifier les valeur de configuration de SMTP par exemple, mais pour celui là ça ne marche pas, il continue de m'afficher la valeur par defaut qui est "c:/wamp/tmp" du php.ini.

Si quelqu'un à une idée parce que là je comprend vraiment pas où est le soucis, c'est tellement simple comme code.

PS: je ne tiens pas à modifier le fichier php.ini car mon code vas être déployer sur trois site diffèrent et je n'est pas envie de modifier le php.ini à chaque fois.

Merci

2 réponses

Bonjour

Les variables de configuration ne sont pas toutes modifiables par ini_set...

upload_tmp_dir est dans la catégorie PHP_INI_SYSTEM, ce qui signifie qu'elle ne peut être modifiée que dans php.ini ou httpd.conf :
https://www.php.net/manual/fr/configuration.changes.modes.php
https://www.php.net/manual/fr/ini.core.php#ini.upload-tmp-dir

C'est compréhensible. Quand un fichier est envoyé par POST, il arrive avec les en-têtes HTTP. Il est donc déjà reçu avant que ton script s'exécute. À quoi bon changer le répertoire après ? Il y a move_uploaded_file pour ça...
2
Fallentree Messages postés 2309 Date d'inscription mercredi 25 février 2009 Statut Membre Dernière intervention 22 juillet 2019 208
Modifié par Fallentree le 15/08/2011 à 01:50
Mais comment differencier les uploads en cours en fonction des utilisateurs...
La solution aurait été pratique de les differencier à l'aide d un repertoire en changeant le upload_tmp_dir ...
0
Bonjour

2 ans après...

Mais comment differencier les uploads en cours en fonction des utilisateurs... 
De deux choses l'une : ou tu as un système d'identification des utilisateurs, ou tu n'en as pas.
Si tu en as un, tu sais quel est l'utilisateur qui fait l'upload
Si tu n'en as pas, parler de distinguer les utilisateurs n'a aucun sens.

La solution aurait été pratique de les differencier à l'aide d un repertoire en changeant le upload_tmp_dir
Effectivement, ça aurait permis de se passer de la notion de répertoire temporaire, pour charger directement dans le répertoire de destination. Les concepteurs de PHP en ont décidé autrement, ils avaient sans doute quelques bonnes raisons. D'ailleurs, ce n'est pas forcément une bonne solution, par exemple quand on charge plusieurs fichiers dans le même formulaire, qui ne sont peut-être pas tous destinés au même répertoire.
0