Codeigniter 4: Изменение размера, сжатие изображения с помощью обработки изображений
В этом руководстве вы узнаете, как загружать и сжимать, изменять размер и управлять размером изображения перед загрузкой в базу данных в приложении Codeigniter 4. После чего, вы можете легко сжимать любой тип изображения, например png, jpg, jpeg, gif и т. д.
Как изменить размер и сжать изображение в Codeigniter 4
1. Создадим таблицу в базе данных
CREATE TABLE files(
id int(11) NOT NULL AUTO_INCREMENT COMMENT 'Primary Key',
name varchar(100) NOT NULL COMMENT 'Name',
type varchar(255) NOT NULL COMMENT 'File Type',
created_at varchar(20) NOT NULL COMMENT 'Created date',
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='demo table' AUTO_INCREMENT=1;
2. Создадим контроллер изменения размера изображения
На этом этапе перейдите в app/Controllers и создайте имя контроллера ImageUploadController.php. Затем добавьте в него следующий код:
<?php
namespace App\Controllers;
use CodeIgniter\Controller;
class ImageUploadController extends Controller {
public function index() {
return view('imageUploadForm');
}
public function upload() {
helper(['form', 'url']);
// доступ к базе данных
$database = \Config\Database::connect();
$db = $database->table('files');
// проверка валидации файла
$isValidFile = $this->validate([
'file' => [
'uploaded[file]',
'mime_in[file,image/jpg,image/jpeg,image/png,image/gif]',
'max_size[file,4096]',
]
]);
// проверяем валидацию
if (!$isValidFile) {
print_r('Upload valid file upto 4mb size');
} else {
$imgPath = $this->request->getFile('file');
// Обработка изображений
$image = \Config\Services::image()
->withFile($imgPath)
->resize(200, 100, true, 'height')
->save(FCPATH .'/images/'. $imgPath->getRandomName());
$imgPath->move(WRITEPATH . 'uploads');
$fileData = [
'name' => $imgPath->getName(),
'type' => $imgPath->getClientMimeType()
];
$store = $db->insert($fileData);
print_r('Image has been successfully resized');
}
}
} ?>
3. Создание представления формы загрузки изображения
На этом этапе вам нужно создать imageUploadForm.php, перейдя в каталог app/Views/ и создать файл imageUploadFormphp, после чего обновить в нем следующий HTML-код:
<!DOCTYPE html>
<html>
<head>
<title>Codeigniter Compress Image Size Example - MakeCodes.ru</title>
</head>
<body>
<?php echo $error;?>
<form method='post' action='/ImageUploadController/upload' enctype='multipart/form-data'>
<input type="file" name="file" size="20" />
<input type="submit" value="upload" />
</form>
</body>
</html>
Codeigniter 4 может сжимать, изменять размер изображения. В этом руководстве вы узнали, как загружать и сжимать, а также изменять размер изображения в приложении CodeIgniter 4.
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.