Я использую класс загрузки файлов в codeigniter и могу успешно загружать изображения. Мой вопрос: как сделать так, чтобы пользователь загружал изображение только фиксированного размера, 600 на 360 пикселей, не больше и не меньше? Я попытался использовать массив данных загрузки, чтобы получить высоту и ширину изображения, и проверяю эти значения TRUE или FALSE. Если false, я передаю строку ошибки в представление, если true, я ничего не отображаю в представлении, но я не уверен, что оно работает правильно. Кто-нибудь может помочь с тем, как это сделать? Заранее спасибо!
Загрузка изображения фиксированного размера с помощью codeigniter, как?
Ответы (2)
Вы можете использовать инструменты библиотеки GDI, чтобы узнать высоту и ширину изображения, а также другую информацию.
Например:
$imgInfo = getimagesize("/path/to/image.png");
if ($imgInfo[0] != 600) && $imgInfo[1] != 360){
throw new Exception("Illegal image size");
}
http://www.php.net/manual/en/function.getimagesize.php
person
Itai Sagi
schedule
21.04.2013
Вы можете использовать библиотеку обработки изображений в сочетании с библиотекой загрузки файлов.
Используя библиотеку загрузки файлов, вы можете:
- убедитесь, что загруженные файлы имеют именно тот размер, который вам нужен:
И вы можете использовать библиотеку манипулирования изображениями для изменения размера загруженного изображения, если это необходимо, поэтому полное решение будет выглядеть так:
$fileInfo = $this->upload->data();
if( $fileInfo['width'] == 600 && $fileInfo['height'] == 300 ) {
// do something
} else {
// initiialize library
$this->image_lib->resize();
}
Подробнее об этих библиотеках можно прочитать здесь:
http://ellislab.com/codeigniter/user-guide/libraries/image_lib.html
http://ellislab.com/codeigniter/user-guide/libraries/file_uploading.html
person
kav
schedule
21.04.2013