Я потратил несколько дней, пытаясь заставить это работать на основе примеров в документации, но я что-то упустил, или я просто тупой!
У меня есть приложение CMS, где пользователи загружают изображение для отображения вочень фиксированная компоновка.Мы не хотим ограничивать размер файла загружаемого изображения, а скорее «обработаем» его после получения.
Изображение должно иметь ширину 615 пикселей, но некоторые изображения, загружаемые непосредственно с цифровых камер, имеют размер 2500X2000 ибольше, так что это КРИТИЧЕСКИЙ.
Я собрал код из руководства, и изображение успешно загружается в папку в приложении CMS.Однако размер изображения НЕ изменяется.
Если я когда-нибудь получу его изменить размер, я планирую представить изображение пользователю для обрезки с помощью jCrop (окончательное изображение должно быть 615X275, и, вероятно, оно должно быть обрезано по высоте после изменения размера)а затем используйте codeigniter, чтобы отправить изображение по FTP в папку с файлами своего сайта, используя оригинальное имя.
Я буду признателен за любую помощь в этом вопросе!
Вот мой код:
function do_feature_upload() {
$imageName = $this->uri->segment(3);
//echo $imageName;
// Where the file is going to be placed
$config['upload_path'] = "./uploads/".$_SESSION['dbPropNumber'];
$config['allowed_types'] = 'jpg|jpeg';
$config['max_size'] = '0';
$config['file_name'] = $imageName.'.jpg';
$config['overwrite'] = 'TRUE';
$this->load->library('upload', $config);
if ( ! $this->upload->do_upload()) {
$error = array('error' => $this->upload->display_errors());
$error['propertyDropdown'] = $_SESSION['propertyDropdown'];
$error['username'] = $_SESSION['username'];
$error['dbPropNumber'] = $_SESSION['dbPropNumber'];
$error['propertyName'] = $this->content->getPropertyName($_SESSION['dbPropNumber']);
$this->load->view('upload_AmenityImage', $error);
} else {
$image_data = $this->upload->data();
$origWidth = $image_data['image_width'];
$origHeight = $image_data['image_height'];
$newWidth = 615;
$newHeight = $newWidth*$origHeight/$origWidth;
$resize = array(
'image_library'=>'gd2',
'source_image'=>base_url().'uploads/'.$_SESSION['dbPropNumber'].'/'.$imageName.'.jpg',
'new_image'=>base_url().'uploads/'.$_SESSION['dbPropNumber'].'/'.$imageName.'1.jpg',
'create_thumb' => FALSE,
'maintain_ratio'=>FALSE,
'width'=>$newWidth,
'height'=>$newHeight
);
$this->load->library('image_lib',$resize);
$this->image_lib->resize();
$data = array('upload_data' => $this->upload->data());
$data['propertyDropdown'] = $_SESSION['propertyDropdown'];
$data['username'] = $_SESSION['username'];
$data['dbPropNumber'] = $_SESSION['dbPropNumber'];
$data['propertyName'] = $this->content->getPropertyName($_SESSION['dbPropNumber']);
//Present jCrop option after image is resized
// FTP to final destination
$this->load->view('upload_success', $data);
} // end if
} // end function