Codeigniter, как загрузить изображение с измененным размером или большой палец ТОЛЬКО - PullRequest
0 голосов
/ 19 сентября 2018

Я новичок с CodeIgniter и хочу сначала изменить размер изображения перед сохранением в моей базе данных и локальном хранилище с помощью move_uploaded_file Я смог изменить размер, используя приведенный ниже код, но как получить доступ к измененному размеру изображения и загрузить его с помощью move_uploaded_file на PHP

$uploaddir = './images/post/';
$uploadfile = $uploaddir . basename($value1."-".$date."-".$_FILES['file']['name']);

$config['image_library'] = 'gd2';
$config['source_image'] = $uploadfile;
$config['create_thumb'] = TRUE;
$config['width']     = 350;
$config['height']   = 1;
$config['maintain_ratio'] = TRUE;
$config['master_dim'] = 'width';

$this->image_lib->clear();
$this->image_lib->initialize($config);
$this->image_lib->resize();

Любое предложение было бы замечательно.

Ответы [ 2 ]

0 голосов
/ 19 сентября 2018

Вы должны понимать, что, по сути, вы загружаете файл во временный каталог и используете локально сохраненный файл для создания изображения с измененным размером.

Так что, к лучшему или худшему, ваше изображение ужена вашем сервере. Таким образом:

Ваш порядок операций неправильный.Вам нужно использовать библиотеку загрузки, чтобы сначала перенести изображение на ваш сервер, а затем вы можете использовать это местоположение файла вместо временного имени, чтобы изменить размер изображения.С помощью библиотеки изображений Codeigniters вы можете сделать так, чтобы измененное изображение перезаписывало оригинал.Для этого вы измените $config['create_thumb'] = false; и измените размер, нацеливаясь на исходное / исходное изображение.

Подробнее об этой настройке здесь: https://www.codeigniter.com/userguide3/libraries/image_lib.html#CI_Image_lib::resize

Если вы действительно хотите идти по вашему маршруту (который неэто здорово, потому что у вас нет средств защиты, которые предлагает библиотека для загрузки) установите $config['create_thumb'] в false, как я уже говорил, ИЛИ обратите внимание, что файл большого пальца должен быть временным именем + _thumb + с любым расширением.

См. Маркер большого пальца здесь: https://www.codeigniter.com/userguide3/libraries/image_lib.html#preferences

0 голосов
/ 19 сентября 2018

Когда пользователь отправляет файл (форма должна иметь атрибут enctype="multipart/form-data", чтобы это работало):

  1. файл загружается в настроенный каталог сервера upload_tmp_dir
  2. свойства загруженного файла хранятся в массиве $_FILE: исходное имя, тип MIME, временное имя ( документация )
  3. после завершения сценария временный файл удаляется

Итак, если вы хотите сохранить только изображение с измененным размером, вы можете напрямую обработать временный файл, используя абсолютный путь в свойстве $_FILES['file']['tmp_name'].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...