2013-03-05 633 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