Как сохранить картинку на сервер?

Для сохранения картинки на сервер в фреймворке Yii можно использовать несколько подходов. Рассмотрим два основных способа.

1. Использование встроенного в Yii класса CUploadedFile:

// Получаем загруженный файл
$file = CUploadedFile::getInstanceByName('image');

// Получаем расширение файла
$extension = $file->getExtensionName();

// Генерируем уникальное имя файла
$filename = md5(uniqid(rand(), true)) . '.' . $extension;

// Определяем путь для сохранения файла
$uploadPath = Yii::getPathOfAlias('application.uploads') . DIRECTORY_SEPARATOR . $filename;

// Сохраняем файл
$file->saveAs($uploadPath);

В этом примере мы получаем объект CUploadedFile, представляющий загруженный файл. Затем мы получаем расширение файла, генерируем уникальное имя файла, определяем путь для сохранения файла и сохраняем файл вызовом метода saveAs().

2. Использование стандартной функции move_uploaded_file():

// Получаем загруженный файл
$file = $_FILES['image'];

// Получаем расширение файла
$extension = pathinfo($file['name'], PATHINFO_EXTENSION);

// Генерируем уникальное имя файла
$filename = md5(uniqid(rand(), true)) . '.' . $extension;

// Определяем путь для сохранения файла
$uploadPath = Yii::getPathOfAlias('application.uploads') . DIRECTORY_SEPARATOR . $filename;

// Сохраняем файл
move_uploaded_file($file['tmp_name'], $uploadPath);

В этом примере мы получаем информацию о загруженном файле из массива $_FILES, получаем расширение файла, генерируем уникальное имя файла, определяем путь для сохранения файла и сохраняем файл вызовом функции move_uploaded_file().

Оба этих подхода позволяют сохранить загруженную картинку на сервере. Ассоциация Yii предоставляет удобные средства для работы с файлами и загрузкой файлов, упрощая процесс сохранения файлов на сервере.