Я потратил дни, пытаясь сделать эту работу на основе примеров в документации, но мне что-то не хватает, или я просто STUPID!CodeIgniter Загрузить и изменить размер Проблема
У меня есть приложение 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
попытайтесь удалить base_url() в функции изменения размера. Если я правильный путь (source_image и new_image) должен быть относительным не абсолютным. – trix 2010-12-01 17:51:47
РАБОТАЕТ КАК ОЧАРОВАТЬ! !!! THANKS !!! – jgravois 2010-12-01 18:02:39