move_uploaded_file et permissions windows

Eléphanteau du PHP | 20 Messages

20 févr. 2009, 16:45

Dans un répertoire spécial de windows, j'ai mis des permissions de lecture et d'écriture pour l'ensemble des usagers du réseau de mon intranet.
Cependant la fonction move_uploaded_file de mon intranet ne permet pas au fichiers qui viennent dans ce répertoire d'hériter des permissions alors que je les ai configurées ! Il prend juste les permissions de lecture / écriture pour l'usager. Si par exemple il uploade une image, elle ne va pas s'afficher pour les autres usagers de l'intranet, ce qui est ennuyeux.
Existe-t-il un moyen de configurer les permissions pour cette fonction dans un environnement windows / iis ?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

20 févr. 2009, 17:05

J'avoue ne jamais l'avoir essayé sous windows, mais est-ce que la fonction chmod() de php ne te permettrait pas de spécifier les droits que tu veux après avoir déplacé le fichier ?
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphanteau du PHP | 20 Messages

20 févr. 2009, 17:09

Non, la fonction chmod ne marche pas sous windows, pas du tout le même système. Je m'en vais modifier le php.ini pour mettre le dossier temporaire aux bonnes permissions et je vous dis si ça marche ... j'ai trouvé ça sur php.net :
For those using PHP on Windows and IIS, you SHOULD set the "upload_tmp_dir" value in php.ini to some directory around where your websites directory is, create that directory, and then set the same permissions on it that you have set for your websites directory. Otherwise, when you upload a file and it goes into C:\WINDOWS\Temp, then you move it to your website directory, its permissions will NOT be set correctly. This will cause you problems if you then want to manipulate that file with something like ImageMagick's convert utility.

Eléphanteau du PHP | 20 Messages

25 févr. 2009, 14:11

ça marche avec la solution précédemment évoquée 8-)