1
我已經嘗試清除,取消設置調整大小的原始圖像到不同的尺寸的配置,但沒有效果,下是我當前的控制器代碼。當用戶選擇圖像時,會調用upload_news_images()(上傳信號圖像,創建大拇指向用戶顯示:(使用AJAX)。當用戶點擊提交表單時,我需要使用不同尺寸的resize ,正在顯示任何錯誤Codeigniter - 多個調整大小圖像不工作
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class DataHandler extends CI_Controller {
public function insert_news(){
// uploaded images array
$uploaded_images = $this->input->post('uploads');
// move images
foreach($uploaded_images as $img){
$j = 0;
for($k=0; $k<3; $k++){
if($k==0){
$this->resize($img, 176, 176);
}
if($k==1){
$this->resize($img, 360, 360);
}
if($k==2){
$this->resize($img, 1024, 1024);
}
}
//rename("./uploads/tmp/orignals/".$img, "./uploads/images/news/orignals/".$img);
}
exit;
// WE INSERT NEWS DATA SECOND
$this->load->model("News_model");
$news = new News_model();
$news->title = $this->input->post('title');
$news->short_desc = $this->input->post('short_desc');
$news->desc = $this->input->post('description');
$news->pub_date = date("Y/m/d H:i:s");
$news->active = $this->input->post('active');
$tr_id = $this->input->post('tr_id');
if($tr_id == ""){
$news->tr_id = NULL;
}else{
$news->tr_id = $this->input->post('tr_id');
}
$sp_id = $this->input->post('sp_id');
if($sp_id == ""){
$news->sp_id = NULL;
}else{
$news->sp_id = $this->input->post('sp_id');
}
$pl_id = $this->input->post('pl_id');
if($pl_id == ""){
$news->pl_id = NULL;
}else{
$news->pl_id = $this->input->post('pl_id');
}
$city_id = $this->input->post('city_id');
if($city_id == ""){
$news->city_id = NULL;
}else{
$news->city_id = $this->input->post('city_id');
}
$news->save();
$this->session->set_flashdata('i', 1);
redirect(SITE_BASE_URL.'admin/addnews');
}
public function upload_news_images() {
$id=$this->generateRandomString();
$source_image = $_FILES['file']['tmp_name'];
$source_name = $_FILES['file']['name'];
$file_extension = pathinfo($source_name,PATHINFO_EXTENSION);
//echo AAPPATH;exit;
$tmp_upload_path = "./uploads/tmp/orignals/";
$tmp_upload_thumb_path = "./uploads/tmp/thumbs/";
$new_source = $tmp_upload_path.$id.".".$file_extension;
$new_thumb = $tmp_upload_thumb_path.$id.".".$file_extension;
if(file_exists($tmp_upload_path.$source_name)){
unlink($tmp_upload_path.$source_name); //remove the file
}
move_uploaded_file($source_image , $new_source);
$upload_img_arr[] = $new_source;
$upload_img_data = array("upload_img_arr"=>$upload_img_arr);
//$this->session->set_userdata($upload_img_data);
$config['image_library'] = 'gd2';
$config['source_image'] = $new_source;
$config['new_image'] = $new_thumb;
$config['file_permissions'] = 0644;
$config['create_thumb'] = FALSE;
$config['maintain_ratio'] = TRUE;
$config['width'] = 76;
$config['height'] = 76;
$this->load->library('image_lib', $config);
$this->image_lib->initialize();
$this->image_lib->resize();
$this->image_lib->clear();
unset($config);
if (!$this->image_lib->resize()) {
echo $this->image_lib->display_errors();
}
$response = array();
$response['id'] = $id;
$response['thumb_url'] = $new_thumb;
echo json_encode($response);
}
function generateRandomString($length = 63) {
$characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$charactersLength = strlen($characters);
$randomString = '';
for ($i = 0; $i < $length; $i++) {
$randomString .= $characters[rand(0, $charactersLength - 1)];
}
return $randomString;
}
function resize($img, $width=0, $height=0){
$config['image_library'] = 'gd2';
$config['source_image'] = "./uploads/tmp/orignals/".$img;
if($width==176){
$config['new_image'] = "./uploads/images/news/smalls/".$img;
}else if($width==360){
$config['new_image'] = "./uploads/images/news/mediums/".$img;
}else if($width==1024){
$config['new_image'] = "./uploads/images/news/large/".$img;
}
echo $config['new_image']."<br>";
$config['file_permissions'] = 0644;
$config['create_thumb'] = FALSE;
$config['maintain_ratio'] = TRUE;
$config['width'] = $width;
$config['height'] = $height;
$this->load->library('image_lib', $config);
$this->image_lib->initialize();
$this->image_lib->resize();
$this->image_lib->clear();
unset($config);
if (!$this->image_lib->resize()) {
echo $this->image_lib->display_errors();
}
}
}
你肯定'$這 - >調整函數存在? –
是的,我的確如upload_news_images()那樣工作得很好! – user2365001
resize()是此類中的最後一個函數 – user2365001