2016-06-03 2 views
-4

J'ai créé une application Web avec un navigateur de fichiers. J'essaie d'ajouter une fonctionnalité où l'utilisateur peut changer le chmod/permissions via une requête ajax qui est traitée via PHP sur le back-end.PHP: Pourquoi chmod() règle mon fichier/dossier sur 555 ou 444?

(Side Note: Je suis en local avec mon WAMP)

Alors d'abord, je lis les permissions avec ce

substr(sprintf('%o', fileperms($relativePath)), -4) 

pour obtenir ce format (0777, 0644, etc), sinon il renvoie quelque chose comme 32726. Cette information est utilisée pour être affichée dans l'interface utilisateur pour que l'utilisateur sache ce qui est en cours.

Cependant, lorsque je lance le script, je le mets à 0777 et il semble fonctionner correctement. Mais quand je relis le fichier, il renvoie 0555 ou 0444. Quelqu'un sait-il ce qui me manque?

+0

Qu'est-ce que cela a à voir avec javascript? –

+0

J'ai ajouté JavaScript parce que c'est ce que j'utilise pour faire la demande. Figuré si quelqu'un avait la même configuration, il serait utile lors de la recherche. – SReca

Répondre

0

j'ai réalisé ce n'était pas un problème, mais plutôt la commande chmod ne fonctionne pas correctement sur un ordinateur Windows/configuration apache.

0

Votre serveur Web possède-t-il les fichiers sur lesquels il tente de modifier les autorisations? Vous pouvez vérifier si chmod a fonctionné correctement ou a échoué en testant sa valeur de retour. Il retournera FALSE si le serveur web n'a pas les permissions. Pour plus d'informations, vous pouvez lire: http://php.net/manual/en/function.chmod.php

<?php 

$is_success = chmod("myfile.pdf", 777); 
if($is_sucess) { 
    echo "success<br />\n"; 
} 
+0

J'ai en fait une configuration très similaire sur la fin PHP ... Le problème n'est pas de savoir si c'est réussi ou non, mais plutôt, une fois que je traite la demande de changement de perm 777 et relance le fichier en utilisant l'extrait de code fourni ci-dessus, il renvoie 555 ou 444. – SReca