Php 插入数据URL/链接输入匹配上载的图像Codeigniter

Php 插入数据URL/链接输入匹配上载的图像Codeigniter,php,codeigniter,Php,Codeigniter,在我的上传表单上,我有多个链接和用户文件。我希望能够插入与该表行上的图像匹配的链接/url,到目前为止,我所尝试的还没有成功。我已经把链接和用户文件放到数组中,图像上传很好 在我的控制器中,您将能够看到我为模型测试的内容 我想知道的是,当用户在数据库中插入时选择图像时,url/链接输入的输入将与图像文件名匹配的最佳方式是什么 先谢谢你。如果你决定投反对票,你能告诉我为什么干杯吗 横幅形式 <?php echo Modules::run('admin/common/header/index'

在我的上传表单上,我有多个链接和用户文件。我希望能够插入与该表行上的图像匹配的链接/url,到目前为止,我所尝试的还没有成功。我已经把链接和用户文件放到数组中,图像上传很好

在我的控制器中,您将能够看到我为模型测试的内容

我想知道的是,当用户在数据库中插入时选择图像时,url/链接输入的输入将与图像文件名匹配的最佳方式是什么

先谢谢你。如果你决定投反对票,你能告诉我为什么干杯吗

横幅形式

<?php echo Modules::run('admin/common/header/index');?><?php echo Modules::run('admin/common/column_left/index');?>
<div id="content">
<div class="container-fluid">

<div class="row">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">

<div class="panel panel-default">
<div class="panel-heading clearfix">
<div class="pull-right">
</div>
</div>
<div class="panel-body">
<?php echo $error;?>
<?php echo form_open_multipart('admin/design/banners/do_upload');?>

<table>
<thead>
<tr>
<td>Link</td>
<td>Image</td>
</tr>
</thead>
<tbody>
<tr>
<td><input type="text" name="link[]" placeholder="url"></td>
<td><input type="file" name="userfile[]" size="20" multiple="multiple" /></td>
</tr>
<tr>
<td><input type="text" name="link[]" placeholder="url"></td>
<td><input type="file" name="userfile[]" size="20" multiple="multiple" /></td>
</tr>
</tbody>
</table>

<input type="submit" value="upload" />

</form>
</div>
</div>

</div>
</div>
</div>
</div>

链接
形象
控制器

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

class Banners extends MX_Controller {

public function __construct() {
    parent::__construct();
}

public function index() {

    $data['error'] = '';

    $this->load->view('design/banner_form.tpl', $data);

}

public function do_upload() {

$files = $_FILES;

$file_loop = count($_FILES['userfile']['name']);

for($i = 0; $i < $file_loop; $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->file_config());

if ($this->upload->do_upload() == FALSE) {

$data['error'] = $this->upload->display_errors();               
$this->load->view('design/banner_form.tpl', $data);

} else {

/*
| 
| Model Function Here For Tesing Only
| Will make proper model function when issue sorted.
|
*/

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

foreach ($upload_infos as $upload_info) {

$data = array(
'image' => $upload_info['file_name'],
//'link' => $this->input->post('link')
);

}

$this->db->insert('banner_image', $data);

return $this->load->view('design/banner_list.tpl', $data);

}

} 

}

private function file_config() {   

$config = array();

$config['upload_path'] = './upload/';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = '3000';
$config['overwrite'] = TRUE;

return $config;

}

}

在我看来,因为链接和图像在数组中,所以我必须额外计算
个数($\u POST['link'])
对于链接和图像,我必须这样做
$filename=$files['userfile']['name'][$I]如中所示
成功是成功的一部分

在阅读了更多的php手册之后,我花了一段时间才弄明白这一点,现在这段代码适用于多线程上传 还有

类上载扩展CI_控制器{

function __construct()
{
    parent::__construct();
    $this->load->helper(array('form', 'url'));
}

function index()
{


    $this->load->view('design/banner_form.tpl', array('error' => ' ' ));
}

function do_upload() {

    $files = $_FILES;

    $file_loop = count($_FILES['userfile']['name']);

    for($i= 0; $i < $file_loop; $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->file_config());

        if (!$this->upload->do_upload()) {              
            $error = array('error' => $this->upload->display_errors());
            $this->load->view('design/banner_form.tpl', $error);
        } else {                

            $data_count = count($_POST['link']);
            $url = $_POST['link'][$i];
            $filename = $files['userfile']['name'][$i];                 
            $this->db->set('link', $url);
            $this->db->set('image', $filename);
            $this->db->insert('banner_image');

            $this->load->view('design/banner_list.tpl');
        }
    } 
}

private function file_config() { 
    $config = array();
    $config['upload_path'] = './upload/';
    $config['allowed_types'] = 'gif|jpg|png';
    $config['max_size']      = '0';
    $config['overwrite']     = TRUE;

    return $config;
}
函数uuu构造()
{
父项::_构造();
$this->load->helper(数组('form','url');
}
函数索引()
{
$this->load->view('design/banner_form.tpl',array('error'=>'');
}
函数do_upload(){
$files=$\u文件;
$file_loop=count($_FILES['userfile']['name']);
对于($i=0;$i<$file\u loop;$i++){
$\u FILES['userfile']['name']=$FILES['userfile']['name'][$i];
$\u FILES['userfile']['type']=$FILES['userfile']['type'][$i];
$\u FILES['userfile']['tmp_name']=$FILES['userfile']['tmp_name'][$i];
$\u FILES['userfile']['error']=$FILES['userfile']['error'][$i];
$\u FILES['userfile']['size']=$FILES['userfile']['size'][$i];
$this->upload->initialize($this->file_config());
如果(!$this->upload->do_upload()){
$error=array('error'=>$this->upload->display_errors());
$this->load->view('design/banner\u form.tpl',$error);
}否则{
$data_count=计数($_POST['link']);
$url=$_POST['link'][$i];
$filename=$files['userfile']['name'][$i];
$this->db->set('link',$url);
$this->db->set('image',$filename);
$this->db->insert('banner_image');
$this->load->view('design/banner_list.tpl');
}
} 
}
私有函数文件_config(){
$config=array();
$config['upload_path']='./upload/';
$config['allowed_types']='gif | jpg | png';
$config['max_size']='0';
$config['overwrite']=TRUE;
返回$config;
}

}

什么是表结构?数据库表是Name='banner\u image'列,banner\u image\u id,link,image。我解决了自己的问题,花了一段时间,但还是解决了。