codeigniter - 我有一个有效的多重上传(文档和图像)CODEIGNITER

标签 codeigniter

我已经在 codeigniter 中进行了有效的多重上传,但我遇到了一个问题,如何将这些文件的文件名插入到两个表(文档和图像表)上,这两个表有两个相同的列名(身份证、姓名)。有没有办法可以分离或分隔我的上传图像和文档的代码。因为我将它们统一在一个函数中。

这是我的代码。它正在工作。

查看

<?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!') ?>

Controller

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;
}

这些代码正在运行,并且能够传输我想要的路径上的所有文件。 但我想知道制作模型时,我如何识别文件类型,正如您在上面看到的代码一样,我在变量“$filename”上传递了文件名。如果您使用 print_r($filename),您将看到所有文件名及其文件扩展名。这些名称是我将根据其文件类型插入到我的两个表中的名称。

是否有 CodeIgniter 或 PHP 代码的代码可用于识别文件类型并将其传递给具有 upload_image 或 upload_docu 等两个函数的模型?请帮助。

最佳答案

所以就在这里..

Controller

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);
}

关于codeigniter - 我有一个有效的多重上传(文档和图像)CODEIGNITER,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19216067/

相关文章:

php - 在 codeigniter 中上传时压缩图像大小

mysql - Codeigniter insert_batch问题

php - 无法在查询中设置限制值

codeigniter 表单验证对于 json 数据总是错误的

php - 试图查询两个表,但我不知道如何查询

php - 如何使用 codeigniter 中的事务根据数据更改进行提交和回滚?

php - 使用 cordova 创建 android 应用程序

mysql - Codeigniter数据库调用效率

php - 在 CI 中使用加载数据 InFile 上传 500000 条记录,但有时并非所有记录都插入

php - 在 codeigniter 库中使用 mysql