2013-10-07 51 views
2

我已经在codeigniter上工作多次上传,但我有一个问题,我如何将这些文件的文件名插入到两个表(文档和图像表)这两个表有两个相同的列名(ID,名称)。有没有办法,我可以disjunct或隔离我的代码上传图像和文档。因为我将它们合并为一个功能。我有一个工作多个上传(文档和图像)CODEIGNITER

这是我的代码。这是工作。

VIEW

<?php echo form_open_multipart('test'); ?> 
    <label>Images</label> 
     <input type='file' multiple='multiple' name='userfile[]'> 
    <label>Documents</label> 
     <input type='file' multiple='multiple' name='userfile[]'> 
<?php echo form_submit('submit', 'Upload them files!') ?> 

控制器

function index() 
{ 
    if (isset($_POST['submit'])) 
    { 
     $this->load->library('upload'); 
     //$this->uploadfile($_FILES['userfile']); 
     $files = $_FILES; 
     $cpt = count($_FILES['userfile']['name']); 
     for($i=0; $i<$cpt; $i++) 
     { 

       $filename = $_FILES['userfile']['name']= $files['userfile']['name'][$i]; 
       $_FILES['userfile']['type']= $files['userfile']['type'][$i]; 
       $_FILES['userfile']['tmp_name']= $files['userfile']['tmp_name'][$i]; 
       $_FILES['userfile']['error']= $files['userfile']['error'][$i]; 
       $_FILES['userfile']['size']= $files['userfile']['size'][$i]; 


       $this->upload->initialize($this->set_upload_options()); 
       $this->upload->do_upload(); 
       $this->upload->data(); 
     } 
    } 
$this->load->view("test"); 
} 
private function set_upload_options() 
{ 
// upload an image and document options 
    $config = array(); 
    $config['upload_path'] = './upload_documents/'; 
    $config['allowed_types'] = 'jpg|png|gif|jpeg|JPG|PNG|GIF|JPEG|pdf|doc|docx|xls|xlsx'; 
    $config['max_size'] = '0'; // 0 = no file size limit 
    $config['max_width'] = '0'; 
    $config['max_height'] = '0'; 
    $config['overwrite'] = TRUE; 


    return $config; 
} 

这些代码工作,它能够将所有文件传输所需的我的道路上。 但我想知道如何制作MODEL,当我在上面看到我的代码时,如何识别文件类型我在变量“$ filename”上传递了文件的名称。如果你使用print_r($ filename),你会看到所有的文件名和它的文件扩展名。这些名称是我将根据它们的文件类型插入到我的两个表中的名称。

是否有CodeIgniter或PHP代码的任何代码,我将用它来识别文件类型并将其传递给带有两个函数(如upload_image或upload_docu)的模型?请帮助。

+1

我已经知道答案。 :) – Vincent

+0

您可以发布答案,以便将来有人可以使用它。 – AlphaMale

+1

确定:)我会发布它。我希望我会有一个投票:) – Vincent

回答

2

所以这里是..

控制器

function index() 
{ 
    if (isset($_POST['submit'])) 
    { 
     $this->load->library('upload'); 
     //$this->uploadfile($_FILES['userfile']); 
     $files = $_FILES; 
     $cpt = count($_FILES['userfile']['name']); 
     for($i=0; $i<$cpt; $i++) 
     { 

       $_FILES['userfile']['name']= $files['userfile']['name'][$i]; 
       $_FILES['userfile']['type']= $files['userfile']['type'][$i]; 
       $_FILES['userfile']['tmp_name']= $files['userfile']['tmp_name'][$i]; 
       $_FILES['userfile']['error']= $files['userfile']['error'][$i]; 
       $_FILES['userfile']['size']= $files['userfile']['size'][$i]; 


       $this->upload->initialize($this->set_upload_options()); 
       $this->upload->do_upload(); 
       $this->upload->data(); 
       $ext = pathinfo($filename, PATHINFO_EXTENSION); 
       $img_ext_chk = array('jpg','png','gif','jpeg','JPG','PNG', 'GIF', 'JPEG'); 
       if (in_array($ext,$img_ext_chk)) 
       { 
        $this->asset->add_image($filename);        
       } 
       else 
       { 
        $this->asset->add_document($filename); 
       } 
     } 
    } 
} 

,并到模型

public function add_image($filename) 
{ 
$data = array ('images' => $filename); 
$this->db->insert('asset_images', $data); 
} 

public function add_document($filename) 
{ 
$data = array ('documents' => $filename); 
$this->db->insert('asset_documents', $data); 
} 
相关问题