2012-06-28 57 views
0

excecuting用的mkdir功能的PHP脚本时,我有一个403禁止页。403禁止在PHP的mkdir

这里是MKDIR代码:

mkdir('uploads/'.$upload_folder.'/', 777) 

我已经试过775,666的权限,但一无所获。 Insde我想存储图像,MP3的和视频的目录。 任何人都可以帮助我吗?

更新1

这里是整个脚本:

$folderStr = $_REQUEST['folderName']; 

//create SEO firndly directory name 
$upload_folder = preg_replace("'\s+'", '-', $folderStr); 

// The place the files will be uploaded to (currently a 'files' directory). 
$upload_path = 'uploads/'.$upload_folder.'/'; 

//Check whether folder exists or create with the name supplied 
if(is_dir($upload_folder)) 
echo 'directory exists'; 
else 
mkdir('uploads/'.$upload_folder.'/', 777); 

它应该使一个新的目录到文件夹“上传”从我得到的形式给出名字它从那里值'文件夹名',并将表格中给出的文件上传到创建的新目录。 另外它不能在文件夹名称上写希腊字符。我必须改变才能使其工作?

+1

403将表明您没有权限通过网络访问脚本,不是说你不有权创建目录 –

+0

我该如何改变这种情况? –

+0

我在本地计算机上运行它。 –

回答

0

你所需的模式,例如前需要一个零

mkdir('uploads/'.$upload_folder.'/', 0777) 

如果使用 '777',你会得到奇怪的权限是这样的:

dr----x--t

,而不是这样的:

drwxrwxr-x

原因(从PHP chmod文档):“请注意,模式不会自动假定为一个八进制值,所以为了确保预期的操作,你需要使用零(0)的前缀模式。“

我可以证实,这还是发生在PHP 7.0.3,尽管相关changes to integer handling:“以前,包含无效的八进制数进行文字截断默默(0128取为012)现在,一个无效的八进制将导致解析错误。”

但是0777是反正默认的,这给尽可能广泛地获得,所以除非要设置以后任何参数,你不需要指定它,(例如,往往以第三选项设置为真的很有用使递归目录的创建,而不是如果父不存在,创建一个错误。)