2013-03-05 146 views
3

我在我的服務器上擁有755權限的Video文件夾。問題是:當有人去上傳視頻文件時,由於權限錯誤,無法上傳到該文件夾​​。暫時使用PHP將文件夾權限更改爲777

如果我將權限更改爲777,則可以上傳視頻。但出於安全原因,我不想允許777的文件夾權限。

有沒有什麼辦法在PHP上傳視頻時臨時更改權限到777?

+1

請給外觀上http://stackoverflow.com/questions/2958602/still -dont-understand-file-upload-folder-permissions – Agilox 2013-03-05 08:44:17

回答

11

PHP爲該任務提供了一個函數chmod()

嘗試將指定文件的模式更改爲模式中給出的模式。

您可以將它放在if語句中,如果它返回false,則可以跳過上載文件部分。


的使用會像

if(chmod($path, 0777)) { 
    // more code 
    chmod($path, 0755); 
} 
else 
    echo "Couldn't do it."; 

chmod function manual描述的,$mode必須在八進制格式 - 前導零,即chmod($path, 0777)

+0

+1的詳細答案,謝謝 – 2013-03-05 08:32:25

+1

if-clause已經將權限更改爲「0777」嗎? – AAGD 2015-11-05 14:23:22

+1

@AAGD是的。但問題是:「PHP上傳video_時是否有任何方式臨時將權限更改爲777?」? – hjpotter92 2015-11-05 15:16:32

2

有一種方法(PHP提供chmod函數),但由於PHP不是文件夾的所有者,您將無法更改權限。我認爲你正在解決錯誤的問題。在同一組中添加網絡服務器和PHP,並將775添加到該文件夾​​。

+0

775也不能正常工作 – 2013-03-05 08:31:13

+0

因爲PHP顯然不在該文件夾的所有者組:) – 2013-03-05 08:32:10

+0

ohh好的,謝謝 – 2013-03-05 08:33:17

0

您可以使用chmod()函數。

欲瞭解更多信息,請here

0

您必須初始化配置爲上載,像這樣:

$config['remove_spaces'] = FALSE; 
$config['upload_path'] = $path; 
$this->upload->initialize($config); 
$this->load->library('upload', $config); 
+1

這與codeigniter不是他在做什麼。 – 2015-06-26 19:34:56