Ok test 1 et 2 fonctionnent très bien, mais si je lance la valeur à partir d'un tableau, cela ne fonctionne pas.chmod définir la valeur des autorisations de façon dynamique
$file = '/test/file.xlsx';
echo "Original Permissions: ".substr(decoct(fileperms($file)),2)."<br />\n\r";
// test 1
$permission = 0775;
chmod($file,$permission);
clearstatcache();
echo "Test 1 Permissions: ".substr(decoct(fileperms($file)),2)."<br />\n\r";
// test 2
define("PERMISSION", 0775);
chmod($file,PERMISSION);
clearstatcache();
echo "Test 2 Permissions: ".substr(decoct(fileperms($file)),2)."<br />\n\r";
Sortie:
Original Permissions: 1407<br />
Test 1 Permissions: 0775<br />
Test 2 Permissions: 0775<br />
Pourquoi pas ce travail?
// $ini_array['excel_file_info']['excel_file_permission']
// is in a ini file with the value set to 0775
if(isset($ini_array['excel_file_info']['excel_file_permission'])) {
$excel_file_permission = $ini_array['excel_file_info']['excel_file_permission'];
define("EXCEL_FILE_PERMISSION", $excel_file_permission);
} else {
$excel_file_permission = 0777;
define("EXCEL_FILE_PERMISSION", $excel_file_permission);
}
echo "Permissions Before chmod: ".substr(decoct(fileperms($file)),2)."<br />\n\r";
chmod($file,EXCEL_FILE_PERMISSION);
clearstatcache();
echo "Permissions After chmod: ".substr(decoct(fileperms($file)),2)."<br />\n\r";;
chmod($file,0755);
clearstatcache();
echo "Permissions Hard Coded chmod: ".substr(decoct(fileperms($file)),2)."<br />\n\r";;
je reçois ce fichier pour les autorisations:
// Before I chmod
Permissions Before chmod: 0644<br />
// Using the DEFINED CONSTANT w/ set value to 0775
Permissions After chmod: 1363<br />
// Hard Coded 0755
Permissions Hard Coded chmod: 0755<br />
EDIT:
// test 3
$permission = array('perm' => 0775);
chmod($file,$permission['perm']);
clearstatcache();
echo "Test 3 Permissions: ".substr(decoct(fileperms($file)),2)."<br />\n\r";
test 3 œuvres, mais pas encore l'exemple principal. POUAH!!!
EDIT # 2:
Je pense avoir trouvé le problème, quand je fais l'écho du type de la variable c'est une chaîne.
echo "Defined Excel File Permission: ".EXCEL_FILE_PERMISSION."\n\r";
echo "Defined Type: ".gettype(EXCEL_FILE_PERMISSION)."\n\r";
Defined Excel File Permission: 0775
Defined Type: string
Pourquoi est-ce?
je l'ai changé et il ne fonctionne toujours pas –
Quelle est votre valeur actuelle pour ini_array $ [ 'excel_file_info'] [ 'excel_file_permission']? essayez de mettre la valeur comme '0777' ou '0644' ou toute autre valeur d'autorisation que vous voulez. – subosito
Dans l'ini j'ai changé la valeur à 0666, quand le script exécute j'obtiens l'autorisation: 1232 –