2014-08-29 1 views
1

J'utilise PHP pour permettre à un utilisateur de télécharger un fichier. Le fichier est en cours de téléchargement, mais les autorisations sur le fichier sont incorrectes. J'ai mis en place les permissions sur le dossier et j'ai coché la case qui s'applique à tous les enfants du dossier.Le fichier téléchargé par PHP a des permissions incorrectes

Cela ne fonctionne qu'après avoir apporté une modification au fichier nouvellement téléchargé. Si je ne modifie pas les permissions, il obtient cet ensemble par défaut qui casse le reste de mon application.

Par exemple, C:\uploads\ est défini pour permettre aux utilisateurs du groupe "Tout le monde" de lire et d'écrire. Toutefois, cela ne s'applique pas au fichier nouvellement téléchargé tant que je ne fais pas quelque chose aux autorisations de ce fichier spécifique (ajouter ou supprimer un utilisateur ou un groupe à ses autorisations - cette modification est remplacée par les autorisations du dossier).

C'est sur IIS6 (je crois) sur Windows Server 2003

Répondre

0

Do:

chmod()

sur votre fichier après le téléchargement

+1

'C: \ uploads \' implique Windows fs. Il n'y a pas de chmod – Oberst

1

fichier télécharger Windows répertoire temp et puis déplacez-le avec les permissions du répertoire temporaire. Si vous donnez de bonnes permissions à l'utilisateur sur ce dossier (upload_tmp_dir), il n'y aura pas de problème. Vous pouvez également utiliser la commande système Windows: CACLS ou ICACLS

+0

Brillant! Je n'aurais pas deviné cela dans un million d'années. Dans mon cas, les utilisateurs téléchargeaient des fichiers image sur MediaWiki, qui utilise PHP. Les autorisations résultantes pour le fichier n'incluaient pas le groupe de sécurité Windows requis pour que les autres utilisateurs puissent voir les fichiers nouvellement téléchargés. Comme Daimos l'a suggéré, j'ai ajouté ce groupe de sécurité au répertoire "% SystemRoot% \ Temp" et résolu le problème. –

Questions connexes