Создайте форму загрузки изображения:
<form action="" method="POST" enctype="multipart/form-data">
<input type="file" name="photo"/>
<button type="submit">загрузить</button>
</form>
Создайте сниппет или отдельный файл(не забудьте подключится) и укажите его в атрибуте action, поместите следующие внутрь:
$user=$modx->getUser(); // получаем данные текущего пользователя
if(!$user){
return;
}
$profile=$user->getOne('Profile'); // данные профиля полученного юзера
if(!$profile){
return;
}
if (!empty($_FILES['photo'])) {
$allowedExts = array("jpg", "jpeg", "gif", "png"); // допустимые форматы
$extension = strtolower(end(explode(".", $_FILES["photo"]["name"])));
if ((($_FILES["photo"]["type"] == "image/gif")
|| ($_FILES["photo"]["type"] == "image/jpeg")
|| ($_FILES["photo"]["type"] == "image/png")
|| ($_FILES["photo"]["type"] == "image/pjpeg"))
&& ($_FILES["photo"]["size"] < 5000000) // максимальный размер изображения
&& in_array($extension, $allowedExts))
{
if($_FILES["photo"]["error"]>0){
$answer="Неизвестная ошибка";
}else{
$uploadfile =$_SERVER['DOCUMENT_ROOT']."/img/".strtotime(date('Y-m-d H:i:s'))."_".$_FILES["photo"]["name"]; // путь и название будущего файла
if(file_exists($uploadfile)){
$answer="Файл с таким названием существует";
}else{
$answer="Ваше фото успешно обновлено";
move_uploaded_file($_FILES['photo']['tmp_name'],$uploadfile); // загрузка изображения
$profile->set('photo', $uploadfile); // запись в базу
}
}
}else{
$answer="Неверный файл, попробуйте выбрать другой файл!";
}
}else{
$answer="Файл не найден, попробуйте повторить попытку!";
}
$profile->save();