我正在尝试创建一个新目录来处理个人资料图片,但每次上传图片时都没有任何反应,因为新目录中没有创建,也没有任何错误。我已经检查了Apache错误日志,但没有注意到与我最近的代码有关的任何错误......
以下是我的代码示例
//profile image upload script
if (isset($_FILES['profile_pics'])) {
if (((@$_FILES["profile_pics"] ["type"] == "image/jpeg" || (@$_FILES["profile_pics"] ["type"] == "image/png") || (@$_FILES["profile_pics"] ["type"] == "image/gif")) && (@$_FILES["profile_pics"] ["size"] < 1048576)) ) // LESS THAN ONE MEGABYTE
{
$chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
$rand_dir_name = substr(str_shuffle($chars), 0, 15);
mkdir("userdata/profile_pics/$rand_dir_name");
else {
}
} }
答案 0 :(得分:1)
您的PHP中有多个错误,您确定在apache日志中没有看到任何致命错误吗?
if
查询无法正常关闭else
声明缺少一个braket @
抑制任何错误 - 删除它们!以下是它应该如何显示的示例:
// array of valid image types
$valid = array( 'image/jpeg', 'image/png', 'image/gif' );
if (isset($_FILES['profile_pics'])) {
// if the file type is in the valid array and the size is less than 1MB
if ( in_array($_FILES['profile_pics']['type'], $valid)
&& ($_FILES["profile_pics"]["size"] < 1048576) )
{
$chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
$rand_dir_name = substr(str_shuffle($chars), 0, 15);
mkdir($_SERVER['DOCUMENT_ROOT'] . "/userdata/profile_pics/$rand_dir_name");
} else {
print( 'too big or not an image.' );
}
}
修改强>
您还应该检查mkdir
响应..就像这样:
$ok = mkdir($_SERVER['DOCUMENT_ROOT'] . "/userdata/profile_pics/$rand_dir_name");
if( !$ok )
{
print('error creating directory, check your permissions');
} else {
print('created directory successfully!');
}
答案 1 :(得分:0)
尝试添加权限。
mkdir(&#34; / path /&#34;,0755);