codeigniter -> Загрузить нулевой вопрос - PullRequest
0 голосов
/ 11 апреля 2011

Я получаю следующую ошибку:

Column 'thumbpath' cannot be null

Я попытался $thumb_info = $thumb_info = $this->image_lib->resize();, а затем в моем $data массиве я установил его как 'thumbpath' => $thumb_info['create_thumb'], но это вызывает ошибку PHP

Fatal error: Call to a member function resize() on a non-object in addimage.php on line 60

Я также изо всех сил пытаюсь получить сообщения об ошибках или об успешном размещении в представлении:

View

<?php
    //Setting form attributes
$formAddImage = array('id' => 'addImage', 'name' => 'addImage');
$imageImage = array('id' => 'userfile', 'name' => 'userfile', 'placeholder' => 'File Location*');
$imageDescription = array('id' => 'description','name' => 'description','placeholder' => 'Image Description*');
?>
<section id = "validation"><?php echo validation_errors();?></section>

<?php
if(!empty($success)) : ?>

<section id="validation"><?php echo $success; ?></section>

<?php endif; ?>

<?php
echo form_open_multipart('admin/addimage', $formAddImage);
echo form_fieldset();
echo form_upload($imageImage);
echo form_textarea($imageDescription);
echo form_submit('submit','Submit');
echo form_fieldset_close();
echo form_close();
?>`

Контроллер

 if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Addimage extends CI_Controller { 

function __construct(){ 
parent::__construct(); 
} 
function index() { 
if(!$this->session->userdata('logged_in')) { 
    redirect('admin/home'); 
} 
// Main Page Data 
$data['cms_pages'] = $this->navigation_model->getCMSPages(); 
$data['title'] = 'Add Gallery Image'; 
$data['content'] = $this->load->view('admin/addimage',NULL,TRUE); 

$this->load->view('admintemplate', $data); 

//Set Validation 
//$this->form_validation->set_rules('userfile', 'userfile', 'trim|required'); 
$this->form_validation->set_rules('description', 'Description', 'trim|required'); 

if($this->form_validation->run() === TRUE) { 

//Set File Settings 
$config['upload_path'] = 'includes/uploads/gallery/'; 
$config['allowed_types'] = 'jpg|png'; 
$config['max_size'] = '100'; 
$config['max_width'] = '1024'; 
$config['max_height'] = '768'; 

$this->load->library('upload', $config);
if(!$this->upload->do_upload()) {

$error = array('imageError' => $this->upload->display_errors());
$this->load->view('admintemplate', $data); 
}
else{
$data = array('upload_data' => $this->upload->data());
$config['image_library'] = 'GD2';
$config['source_image'] = $this->upload->upload_path.$this->upload->file_name;
$config['new_image'] = 'includes/uploads/gallery/thumbs/';
$config['create_thumb'] = 'TRUE';
$config['maintain_ratio'] = 'FALSE';
$config['width'] = '200';
$config['height'] = '150';

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

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

$data = array(   
    'description' => $this->input->post('description', TRUE), 
    'fullpath' => $file_info['file_name'],
'thumbpath' => $file_info['create_thumb']
    ); 
$this->image_model->addImage($data);

$this->data['success'] = 'Thank You, Your Image Has Been Uploaded';
} 
} 

}

Модель

function addImage($data) {
    $this->db->insert('images',$data);
    return;
}

Ответы [ 2 ]

0 голосов
/ 19 апреля 2011

Я исправил эту проблему, выполнив следующие действия:

    $data = array(   
    'description' => $this->input->post('description', TRUE), 
    'fullpath' => $file_info['file_name'],
'thumbpath' =>$file_info['raw_name'].'_thumb'.$file_info['file_ext'] 
    ); 
0 голосов
/ 11 апреля 2011

в строке 58:

'thumbpath' => $file_info['create_thumb']

Я не верю, что 'create_thumb' является допустимым полем, полученным из $ this-> upload-> data ()

Возможно, вы хотите:

 'thumbpath' => $config['new_image'].$this->upload->file_name  

ладно - на втором вопросе о правильном указании большого пальца, я думаю, вы хотите что-то вроде этого:

$imagefullpath = $config['new_image'].$this->upload->file_name;
$path_parts = pathinfo($imagefullpath);
$imageextension = $path_paths['extension'];
$imagerenamed = $part_parts['dirname'].'/'.$path_parts['filename'].'_thumb'.$imageextension;

(не проверено, и убедитесь, что вы работаете нахотя бы PHP 5.2)

дайте мне знать, как это получается.

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