Для сохранения картинки на сервер в фреймворке 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 предоставляет удобные средства для работы с файлами и загрузкой файлов, упрощая процесс сохранения файлов на сервере.