我在这里遇到一些问题。我正在尝试根据uploads文件夹中的用户名创建一个新文件夹。它没有给予和读/写权限,然后在我有这个功能之前它重命名图像(我怎么能保留原始名称)。
$username = $_POST['username'];
$uploads_dir = 'uploads/' . $username;
if (!is_dir($uploads_dir)) {
mkdir($uploads_dir, 0777);
}
$count = 1;
foreach ($_FILES["userfile"]["error"] as $key => $error) {
if ($error == UPLOAD_ERR_OK) {
$tmp_name = $_FILES["userfile"]["tmp_name"][$key];
$name = $_FILES["userfile"]["name"][$key];
$uploadfile = "$uploads_dir/$name";
$ext = strtolower(substr($uploadfile,strlen($uploadfile)-3,3));
if (preg_match("/(jpg|gif|png|bmp)/",$ext)){
$newfile = "$uploads_dir/".str_pad($count++,2,'0',STR_PAD_LEFT).".".$ext;
if(move_uploaded_file($tmp_name, $newfile)){
$success++;
}else{
echo "Couldn't move file: Error Uploading the file. Retry after sometime.\n";
$fail++;
}
}else{
echo "Invalid Extension.\n";
$fail++;
}
}
}
答案 0 :(得分:0)
目录通常是755,虽然取决于PHP的运行方式(作为您/所有者,在您的组中,或作为随机用户/世界),它可能必须是775甚至777才能使您的程序成为能够写入目录。大概这是在服务器上。尝试755,然后是775,最后是777.许多服务器禁止“世界可写”文件或目录,并在xx6或xx7权限上给出500错误。