PHP chmod() 函数 (upload image permit)
chmod() 函数改变文件模式。
如果成功则返回 TRUE,否则返回 FALSE。
参数 | 描述 |
file | 必需。规定要检查的文件。 |
mode | 可选。规定新的权限。 mode 参数由 4 个数字组成:
可能的值(如需设置多个权限,请对下面的数字进行总计):
|
<?php // 所有者可读写,其他人没有任何权限chmod("test.txt",0600);// 所有者可读写,其他人可读 chmod("test.txt",0644);// 所有者有所有权限,其他所有人可读和执行chmod("test.txt",0755);// 所有者有所有权限,所有者所在的组可读chmod("test.txt",0740); ?>
由於某虛擬主機上遇到很奇妙的狀況, 做圖片上傳的功能, 但是圖片上傳後, 權限是 600, 而 owner 是 Apache user, 所以要做 local 的備份時, 那些上傳的圖片都無法備份.
此狀況只好寫個程式讓 Apache user 來做 chmod 的動作, 將圖片檔案權限都改成 644 才行.
<?php `chmod 644 *`; ?>
上述是臨時的做法, 正確應該要於檔案上傳後, 直接就幫他修改檔案權限, 會比較好, 於是來使用 PHP 的 chmod() .
程式如下:
<?php $filename = 'abc.jpg'; chmod($filename, 0644); ?>
這樣子就能將上傳的 abc.jpg 權限改成 644 的權限.
chmod 注意事項
上面是正確寫法, 要注意的是, 下面都是錯誤的寫法: (註解的是權限的結果)
第二個參數的 int $mode, 這欄一定要是數字, 而且要是八進位的數字, 不然都會是上面註解的結果.
八進位在這邊很好記, 就是原本下的十進位指令, 前面加個 0 就可以了, 如下都是正確範例: