web-dev-qa-db-fra.com

Autorisations de fichiers et CHMOD: Comment définir 777 dans PHP lors de la création du fichier?

Une question concernant les autorisations de fichiers lors de l'enregistrement d'un fichier qui, lorsqu'il n'existe pas, est créée initialement en tant que nouveau fichier.

Maintenant, tout se passe bien et le fichier enregistré semble avoir le mode 644.

Que dois-je changer ici, afin de faire enregistrer les fichiers en mode 777?

Merci mille fois pour tout indice, indice ou réponse. Le code que je pense est pertinent ici, j'ai inclus:

/* write to file */

   self::writeFileContent($path, $value);

/* Write content to file
* @param string $file   Save content to wich file
* @param string $content    String that needs to be written to the file
* @return bool
*/

private function writeFileContent($file, $content){
    $fp = fopen($file, 'w');
    fwrite($fp, $content);
    fclose($fp);
    return true;
}
12
Sam

PHP a une fonction intégrée appelée bool chmod(string $filename, int $mode )

http://php.net/function.chmod

private function writeFileContent($file, $content){
    $fp = fopen($file, 'w');
    fwrite($fp, $content);
    fclose($fp);
    chmod($file, 0777);  //changed to add the zero
    return true;
}
25
thescientist

Il vous suffit de définir manuellement les autorisations souhaitées avec chmod() :

private function writeFileContent($file, $content){
    $fp = fopen($file, 'w');
    fwrite($fp, $content);
    fclose($fp);

    // Set perms with chmod()
    chmod($file, 0777);
    return true;
}
6
Michael Berkowski

Si vous souhaitez modifier les autorisations d'un fichier existant, utilisez chmod (changement de mode):

$itWorked = chmod ("/yourdir/yourfile", 0777);

Si vous souhaitez que tous les nouveaux fichiers disposent de certaines autorisations, vous devez examiner la configuration de votre umode. Il s'agit d'un paramètre de processus qui applique une modification par défaut aux modes standard.

C'est un soustractif. Par cela, je veux dire un umode de 022 vous accordera une autorisation par défaut de 755 (777 - 022 = 755).

Mais vous devriez penser très soigneusement aux deux ces options. Les fichiers créés avec ce mode seront totalement protégés contre les modifications.

2
paxdiablo