Создайте форму загрузки изображения:
<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();