2013-03-24 4 views
0

Okey, 그래서 검색을하고 Google에서 모든 것을 시도하지만 막혔습니다. 기존 CodeIgniter 프로젝트에서 업로드 기능을 사용하려고합니다. 실제 크기는 320x320 픽셀이지만 64x64 픽셀 크기로 업로드 한 다음 내보기에 표시하고 싶습니다.codeigniter 가입 테이블에서 이미지를 업로드하는 방법

두 테이블을 결합하여 다른 테이블의 '이름'필드를 얻었으므로 새 데이터를 추가해야 할 때 데이터보기에 추가 할 수 있습니다.하지만 그 일을 처리 할 수는 있지만 혼란 스럽습니다. 업로드 코드/함수 원인을 넣어하는 방법이 'add_data'함수를 내가 데이터베이스에 'tambah_mahasiswa'보기에 게시 할 저장하는 데 사용합니다. 'add_data'함수에 'do_upload'함수를 결합하려고했지만 여전히 작동하지 않습니다. 어떻게 해결할 수 있습니까?

이 tb_mahasiswa 테이블에 내 사진 필드 :

Field Type  Attributes 
photo blob  BINARY 

을 그리고 여기 내 컨트롤러 코드 '의 ControlPanel'=입니다 :

class Controlpanel extends CI_Controller 
{ 
    private $path_uploads; 
    private $path_uploads_thumb; 
    function __construct() 
    { 
     parent::__construct(); 
       $this->cek_login(); 
     $this->load->model('modelku'); 

     $this->path_uploads = realpath(APPPATH . '../uploads/'); 
     $this->path_uploads_thumb = APPPATH . '../uploads/thumbnail'; 
    } 

function add_data() 
    { 
     $this->load->library('form_validation'); 
     $this->load->helper('url'); 

     $data['prodi']=$this->modelku->get_prodi_all(); 

     $this->form_validation->set_rules('nim','Nomor Induk Mahasiswa','required|exact_length[7]'); 
     $this->form_validation->set_rules('nim','Nomor Induk Mahasiswa','required|integer'); 
     $this->form_validation->set_rules('nama','Nama Lengkap Mahasiswa','required'); 
     $this->form_validation->set_rules('prodi','Prodi','required'); 
     $this->form_validation->set_rules('tanggal_lahir','Tanggal lahir','required'); 
     $this->form_validation->set_rules('email','Email','required|valid_email'); 
     $this->form_validation->set_rules('jenis_kelamin','Jenis Kelamin','required'); 
     $this->form_validation->set_rules('alamat','Alamat','required'); 
     $this->form_validation->set_rules('telepon','Telepon','required'); 

     if($this->form_validation->run()) 
     { 
         $nim = $this->input->post('nim'); 
         $nama = $this->input->post('nama'); 
         $prodi = $this->input->post('prodi'); 
         $tanggal_lahir = date('Y-m-d',strtotime($this->input->post('tanggal_lahir'))); 
         $email = $this->input->post('email'); 
         $jenis_kelamin = $this->input->post('jenis_kelamin'); 
         $alamat = $this->input->post('alamat'); 
         $telepon = $this->input->post('telepon'); 
         $photo = $this->input->post('photo'); 

         $data_mahasiswa = array('nim'=>$nim,'nama'=>$nama,'prodi'=>$prodi, 'tanggal_lahir'=>$tanggal_lahir, 
               'email'=>$email, 'jenis_kelamin'=>$jenis_kelamin,'alamat'=>$alamat, 
               'telepon'=>$telepon,'photo'=>$photo); 
         ('controlpanel/index'); 
       } else { 
      $this->load->view("tambah_mahasiswa",$data); 
      } 
    } 

function do_upload() 
    { 
     $config['upload_path'] = $this->path_uploads; 
     $config['allowed_types'] = 'gif|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('error' => $this->upload->display_errors()); 

      $this->load->view('tambah_mahasiswa', $error); 
     } 
     else 
     { 
      $upload_data = $this->upload->data(); 
      $this->load->view('controlpanel_view', $data); 
      $file_name = $upload_data['file_name']; 
      $config['image_library']='gd2'; 
      $config['source_image']=$this->path_uploads . '\\' . $file_name; 
      $config['new_image']=$this->path_uploads_thumb . $file_name; 
      $config['create_thumb']=TRUE; 
      $config['maintain_ratio']=TRUE; 
      $config['width']=320; 
      $config['height']=320; 

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

      if(!$this->image_lib->resize()) 
      { 
       echo $this->image_lib->display_errors(); 
      } else { 
       echo "Berhasil di unggah!"; 
      } 
     } 
    } 

그리고 이것은 'tambah_mahasiswa'= 내 생각이다 :

<!DOCTYPE html> 
<html> 
<head> 
<title>PHP Framework</title> 
    <link rel="stylesheet" href="<?php echo base_url() ?>asset/css/style.css"/> 
</head> 
<body> 

<h3>Tambah Data Mahasiswa</h3> 

    <?php echo form_open('controlpanel/add_data'); ?> 
    <?php echo form_open_multipart('controlpanel/do_upload'); ?> 

<table width="30%" border="0"> 
    <tr> 
    <td>NIM <sup>*</sup></td> 
    <td>:</td> 
     <td> 
      <?php echo form_input(array('name'=>'nim', 'maxlenght'=>'7', 'size'=>'10'),set_value('nim'))?> <?php echo form_error('nim','<span style="color:red;"><small>','</div></span>') ?> </br> 
     </td> 
    </tr> 

    <tr> 
    <td>Nama <sup>*</sup></td> 
    <td>:</td> 
     <td> 
      <?php echo form_input(array('name'=>'nama', 'maxlenght'=>'35', 'size'=>'15'),set_value('nama'))?> <?php echo form_error('nama','<span style="color:red;"><small>','</div></span>') ?> </br> 
     </td> 
    </tr> 


     <td>Prodi <sup>*</sup> </td> 
    <td>:</td> 
    <td> 
     <?php 
        foreach($prodi as $item_prodi) 
        { 
         $array_prodi[$item_prodi->kode]=$item_prodi->namaprodi; 
        } 
       echo form_dropdown('prodi',$array_prodi); 
       ?> 
    </td> 
    </tr> 

    <tr> 
    <td width='30%'>Tanggal Lahir <sup>*</sup></td> 
    <td>:</td> 
     <td> 
      <?php echo form_input(array('name'=>'tanggal_lahir', 'maxlenght'=> '10', 'placeholder'=>'yyyy-mm-dd', 'size'=>'15', 'id'=>'tanggal_lahir'),set_value('tgl_lahir'))?> <?php echo form_error('tgl_lahir','<span style="color:red;"><small>','</small></span>') ?> 
     </td> 
    </tr> 

    <tr> 
    <td>Jenis Kelamin <sup>*</sup></td> 
    <td>:</td> 
     <td> 
      <?php echo form_radio('jenis_kelamin', 'L', TRUE)?> Laki-laki 
      <?php echo form_radio('jenis_kelamin', 'P')?> Perempuan 
     </td> 
    </tr> 

    <tr> 
    <td>Alamat <sup>*</sup></td> 
    <td>:</td> 
     <td> 
      <?php echo form_textarea(array('name'=>'alamat','rows'=>'10','cols'=>'30'),set_value('alamat'))?> <?php echo form_error('alamat','<span style="color:red;"><small>','</small></span>') ?> </br> 
     </td> 

    </tr> 

    <tr> 
    <td>Propinsi </td> 
    <td>:</td> 
     <td> 
     <?php echo form_input(array('name'=>'propinsi', 'maxlenght'=>'15', 'size'=>'17','id'=>'propinsi'))?> <?php echo form_error('propinsi','<span style="color:red;"><small>','</small></span>') ?> </br> 
    </td> 
    </tr> 

    <tr> 
    <td>No. Telp </td> 
    <td>:</td> 
     <td> 
     <?php echo form_input(array('name'=>'telepon', 'maxlenght'=>'15', 'size'=>'17'))?> <?php echo form_error('telp','<span style="color:red;"><small>','</small></span>') ?> </br> 
    </td> 
    </tr> 

    <tr> 
    <td>Email <sup>*</sup> </td> 
    <td>:</td> 
     <td> 
     <?php echo form_input(array('name'=>'email', 'maxlenght'=>'30','placeholder'=>'[email protected]', 'size'=>'17'),set_value('email'))?> <?php echo form_error('email','<span style="color:red;"><small>','</small></span>') ?> </br> 
    </td> 
    </tr> 

    <tr> 
    <td>Photo </td> 
    <td>:</td> 
     <td> 
     <?php echo form_input(array('name'=>'photo', 'type'=>'file', 'size'=>'20'),set_value('photo')) ?> 
     </br> 
    </td> 
    </tr> 

    <tr> 
    <td> 
     <?php echo form_submit(array('type'=>"submit", 'name'=>"mysubmit", 'value'=>"Save"))?> 
    </td> 
    </tr> 

    <?php echo form_close();?> 

</table> 
</body> 
</html> 

추신 : 프로젝트의 이미지 파일에 대한 폴더를 만들었습니다 :

- myproject\uploads\thumbnail 

답변

0

내가 컨트롤러 클래스 '의 ControlPanel', 당신은 함수 do_upload를 정의 위의 주어진 코드에서 볼 수 있었다().

그러나 동일한 컨트롤러 함수 do_upload에서 라이브러리 클래스 인 다른 클래스 이름 'upload'로 함수를 호출하고 있습니다.

$ this-> upload-> do_upload()

어느 쪽이든 당신은 컨트롤러 클래스 이름 '업로드'을 '의 ControlPanel'을 변경해야하거나 현재 컨트롤러에 do_upload 함수의 이름을 변경 시도 할 수 있습니다 클래스를 다른 이름으로 변경하면 현재 코드에 따라 진행할 수 있습니다.

또한보기 페이지의 양식 이름이 do_upload 기능의 양식 이름과 동일해야합니다.

관련 문제