2013-06-05 2 views
1

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

Это то, что у меня есть.

$config['upload_path'] = './uploads/'; 
$config['file_name'] = $this->user->pen_name.'.jpg'; 
$config['file_path'] = './uploads/'.$this->user->pen_name.'.jpg'; 
$config['max-size'] = 2000; 
$config['overwrite'] = TRUE; 
$config['allowed_types'] = 'gif|jpg|png|jpeg'; 
$config['remove_spaces'] = true; 
$config['max_width'] = 2000; 
$config['max_height'] = 3000; 
$this->load->library('upload', $config); 

if (! $this->upload->do_upload()){ 

     $error = array('error' => $this->upload->display_errors()); 
}else{ 
    $resize['source_image'] = base_url().'/uploads/'.$config['file_name']; 
    $resize['new_image'] = './uploads/'; 
    $resize['file_path'] = './uploads/'.$this->user->pen_name.'.jpg'; 
    $resize['create_thumb'] = false; 
    $resize['maintain_ratio'] = true; 
    $resize['width'] = 200; 
    $resize['height'] = 300; 
    $resize['overwrite'] = TRUE; 
    $this->load->library('image_lib', $resize); 
    $this->image_lib->resize(); 
    $this->load->library('upload', $resize); 
    $this->users_model->uploadPic($resize['file_path']); 
    redirect($_SERVER['HTTP_REFERER']); 
} 

Любая помощь будет очень признательна!

ответ

1

Эти конфигурации по умолчанию из CodeIgniter, просто положить разъединить в конце:

$config['image_library'] = 'gd2'; 
$config['source_image'] = '/path/to/image/mypic.jpg'; 
$config['create_thumb'] = TRUE; 
$config['maintain_ratio'] = TRUE; 
$config['width'] = 75; 
$config['height'] = 50; 

$this->load->library('image_lib', $config); 

$this->image_lib->resize(); 

//remove original file 
@unlink($config['source_image']); 
+0

Я хотел бы использовать это, но это похоже, что ссылка на скачивание сломана ... – zazvorniki

+0

Извините за это, вы можете получить ее из [здесь] (http://www.filedropper.com/thumb). И создайте uploads/cache в основной папке, где index.php остается. Использование: Example. thumb.php является контроллером –

+0

Я думаю, что я что-то не понимаю. Я не искал генератор большого пальца, я просто искал изменение размера изображения, которое пользователь загружает, поэтому, если он загрузит изображение, которое будет огромным, оно будет уменьшено, и я не буду размещать или обналичивать изображение большего размера. – zazvorniki

3

Просто была такая же проблема, и решить ее следующим образом:

$config['upload_path'] = './uploads/'; 
    $config['allowed_types'] = 'gif|jpg|png|jpeg'; 
    $config['max_size'] = '2048'; 
    $config['encrypt_name'] = TRUE; 
    $this->load->library('upload', $config); 

    if (!$this->upload->do_upload('logoUpload')) { 
     $this->data['error'] = array('error' => $this->upload->display_errors('<div class="alert alert-danger">', '</div>')); 
     //error 
    } else { 

     $upload_data = $this->upload->data(); 

     //resize: 

     $config['image_library'] = 'gd2'; 
     $config['source_image'] = $upload_data['full_path']; 
     $config['maintain_ratio'] = TRUE; 
     $config['width']  = 150; 
     $config['height'] = 50; 

     $this->load->library('image_lib', $config); 

     $this->image_lib->resize(); 

     //add to the DB 
     $this->settings_model->upload_logo($upload_data); 
Смежные вопросы