У меня проблема с возвратом значения из моей функции. Я думаю, я настроил его, чтобы он возвращал $ filename, но я не получаю пустое значение при его возврате. Я где-то ошибся? Я назначил функцию imageupload переменной $ newfilename, а затем попытался вставить ее в свою базу данных, и у меня нет данных в столбце для этой записи.
Функция загрузки изображения:
function imageupload()
{
$allowed_types=array(
'image/gif',
'image/jpeg',
'image/png',
'image/pjpeg',
);
if (($_FILES["picupload"]["size"] < 5500000))
{
if(in_array($_FILES["picupload"]["type"], $allowed_types))
{
if ($_FILES["picupload"]["error"] > 0)
{
throw new Exception('Invalid File - No Data In File');
}
else
{
$dirname = getcwd() . '/userpics/' . $_SESSION['username'];
if (!file_exists($dirname))
{
$thisdir = getcwd() . "/userpics/" . $_SESSION['username'];
if(mkdir($thisdir , 0777))
{
$filename = basename( $_FILES['picupload']['name']);
$ext = end(explode(".", $filename));
$thisdir = getcwd() . "/userpics/" . $_SESSION['username'] . "/profilepic." . $ext;
if(move_uploaded_file($_FILES['picupload']['tmp_name'], $thisdir))
{
return $ext;
}
else
{
throw new Exception('Could not upload file');
}
}
else
{
throw new Exception('Could not create directory');
}
}
else
{
$filename = basename( $_FILES['picupload']['name']);
$ext = end(explode(".", $filename));
$thisdir = getcwd() . "/userpics/" . $_SESSION['username'] . "/profilepic." . $ext;
if(move_uploaded_file($_FILES['picupload']['tmp_name'], $thisdir))
{
return $ext;
}
else
{
throw new Exception('Could not upload file');
}
}
}
}
else
{
throw new Exception('Invalid File Type');
}
}
else
{
throw new Exception('Invalid File Error, File Too Large');
}
}
Код вызова Imageupload:
else if ($type == "update")
{
if($_POST['changeimage'] == 'true')
{
$newfilename = imageupload();
$sql="UPDATE users SET `FirstName`='$_POST[firstname]', `MiddleInt`='$_POST[middleint]', `LastName`='$_POST[lastname]', `emailAddress`='$_POST[emailaddress]', `website`='$_POST[website]', `Title`='$_POST[title]', `College`='$_POST[collegedropdown]', `Department`='$_POST[deptdropdown]', `Phone`='$_POST[phone]', `Photo`='$newfilename' WHERE `uid` = '$uid';";
}
else
{
$sql="UPDATE users SET `FirstName`='$_POST[firstname]', `MiddleInt`='$_POST[middleint]', `LastName`='$_POST[lastname]', `emailAddress`='$_POST[emailaddress]', `website`='$_POST[website]', `Title`='$_POST[title]', `College`='$_POST[collegedropdown]', `Department`='$_POST[deptdropdown]', `Phone`='$_POST[phone]' WHERE `uid` = '$uid';";
}
}
else
{
echo "Error, please contact the administrator";
}
$result = mysql_query($sql,$con);mysql_close($con);
//header("location: index.php");
}