В Yii фото профиля можно загрузить несколькими способами, в зависимости от того, как вы хотите организовать процесс загрузки и хранения изображений.
- Хранение фото на файловой системе:
- Создайте модель для пользователя, например,
User
. - Добавьте атрибут
image
в модельUser
, который будет использоваться для хранения пути к файлу изображения. - В форме редактирования профиля пользователя добавьте поле типа
file
, которое позволит пользователю выбрать файл с изображением. - При сохранении формы обработайте загруженное изображение. Сохраните его на файловой системе (например, в папке
uploads/profiles
), а затем сохраните путь к файлу в атрибутеimage
моделиUser
.
- Хранение фото в базе данных:
- Создайте таблицу
user
в базе данных, в которой будет содержаться полеimage
, тип которого можно выбрать в зависимости от используемой базы данных (например,BLOB
илиLONGBLOB
). - Создайте модель для пользователя,
User
, и добавьте атрибутimage
с типомCUploadedFile
вместо строки. - В форме редактирования профиля пользователя добавьте поле типа
file
для выбора файла изображения. - При сохранении формы обработайте загруженное изображение. Сохраните его в поле
image
таблицыuser
.
- Использование стороннего сервиса хранения фото:
- Зарегистрируйтесь в сервисе хранения фотографий (например, Amazon S3, Google Cloud Storage или других).
- В форме редактирования профиля пользователя добавьте поле типа
file
для выбора файла изображения. - При сохранении формы обработайте загруженное изображение. Загрузите его в выбранный сервис и сохраните URL изображения в атрибуте
image
моделиUser
.
Независимо от выбранного способа, не забудьте добавить валидацию в модель пользователя для проверки типа файлов и размеров изображений, а также реализовать логику обновления или удаления старого изображения при загрузке нового.