Php 使用Codeigniter进行多个图像上载,只将一个文件路径保存到MySQL数据库
现在我正在构建一个应用程序。我已经建立了一个表单,将上传多个图像到数据库。这是我的简单代码 查看Php 使用Codeigniter进行多个图像上载,只将一个文件路径保存到MySQL数据库,php,mysql,codeigniter,Php,Mysql,Codeigniter,现在我正在构建一个应用程序。我已经建立了一个表单,将上传多个图像到数据库。这是我的简单代码 查看 <?php echo form_open_multipart('admin/product/post'); ?> <table class="table table-stripped"> <tbody> <tr> <td>Code</td> <td&g
<?php echo form_open_multipart('admin/product/post'); ?>
<table class="table table-stripped">
<tbody>
<tr>
<td>Code</td>
<td>
<?php echo form_input(array('class'=>'form-control','name'=>'kodeproduk')); ?>
</td>
</tr>
<tr>
<td>Display</td>
<td>
<input class="form-control" type="file" name="userfile[]" id="multiple" multiple="" />
</td>
</tr>
<tr>
<td>Description</td>
<td>
<div class="textarea textarea-editor">
<textarea name="ket" cols="50" rows="5" class="form-control"></textarea>
</div>
</td>
</tr>
<tr>
<td colspan="2">
<button type="submit" class="btn btn-primary btn-outline btn-block pull-right"><span>Save</span></button>
</td>
</tr>
</tbody>
</table>
<?php echo form_close(); ?>
我在发布时遇到了一个问题,所有的图像文件都上传到服务器上的目录中,但是只有一个图像作为一行存储到MySQL表中。那么如何修复我的代码呢?感谢您的帮助,一些小的改动可能会有所帮助
public function post(){
if($this->_validation()===FALSE){
$this->session->set_flashdata('error', 'Ooops, there was an error');
redirect(base_url("admin/product"));
}else{
$files = $_FILES;
$images = array();
$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();
$images[] = $_FILES['userfile']['name'];
}
$fileName = implode(',',$images);
$data = array( 'kodeProduk' => $this->input->post('kodeproduk'),
'ket' => $this->input->post('ket'),
'GambarBesar' => $fileName
);
unset($data['submit']);
$this->table->add_record($data);
$this->session->set_flashdata('success', 'Product has been saved.');
redirect(base_url("admin/product"));
}
}
公共函数post(){
如果($this->_validation()==FALSE){
$this->session->set_flashdata('error','Ooops,有一个错误');
重定向(基本url(“管理员/产品”);
}否则{
$files=$\u文件;
$images=array();
$cpt=计数($_文件['userfile']['name']);
对于($i=0;$iupload->initialize($this->set_upload_options());
$this->upload->do_upload();
$images[]=$\u文件['userfile']['name'];
}
$fileName=内爆(“,”,$images);
$data=array('kodeProduk'=>$this->input->post('kodeProduk'),
'ket'=>this->input->post('ket'),
'GambarBesar'=>$fileName
);
未设置($data['submit']);
$this->table->add_记录($data);
$this->session->set_flashdata(“成功”,“产品已保存”);
重定向(基本url(“管理员/产品”);
}
}
好的,一些小改动可能会有所帮助
public function post(){
if($this->_validation()===FALSE){
$this->session->set_flashdata('error', 'Ooops, there was an error');
redirect(base_url("admin/product"));
}else{
$files = $_FILES;
$images = array();
$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();
$images[] = $_FILES['userfile']['name'];
}
$fileName = implode(',',$images);
$data = array( 'kodeProduk' => $this->input->post('kodeproduk'),
'ket' => $this->input->post('ket'),
'GambarBesar' => $fileName
);
unset($data['submit']);
$this->table->add_record($data);
$this->session->set_flashdata('success', 'Product has been saved.');
redirect(base_url("admin/product"));
}
}
公共函数post(){
如果($this->_validation()==FALSE){
$this->session->set_flashdata('error','Ooops,有一个错误');
重定向(基本url(“管理员/产品”);
}否则{
$files=$\u文件;
$images=array();
$cpt=计数($_文件['userfile']['name']);
对于($i=0;$iupload->initialize($this->set_upload_options());
$this->upload->do_upload();
$images[]=$\u文件['userfile']['name'];
}
$fileName=内爆(“,”,$images);
$data=array('kodeProduk'=>$this->input->post('kodeProduk'),
'ket'=>this->input->post('ket'),
'GambarBesar'=>$fileName
);
未设置($data['submit']);
$this->table->add_记录($data);
$this->session->set_flashdata(“成功”,“产品已保存”);
重定向(基本url(“管理员/产品”);
}
}
请尝试此代码,我希望这是可以解决的
$files = $_FILES;
$cpt = count($_FILES['fl']['name']);
if($cpt<=10)
{
$number_of_files = sizeof($_FILES['fl']['tmp_name']);
$files = $_FILES['fl'];
$errors = array();
for($i=0;$i<$number_of_files;$i++)
{
if($_FILES['fl']['error'][$i] != 0) $errors[$i][] = 'Couldn\'t upload file '.$_FILES['fl']['name'][$i];
}
if(sizeof($errors)==0)
{
$this->load->library('upload');
$config['upload_path'] = FCPATH . './assets/upload/multiple/';
$config['allowed_types'] = 'gif|jpg|png|jpeg';
for ($i = 0; $i < $number_of_files; $i++) {
//$_FILES['uploadedimage']['ext'] = $this->get_extension($files['name'][$i]);
//echo $_FILES['uploadedimage']['ext'];
$_FILES['uploadedimage']['name'] = time().$i.$files['name'][$i];
$_FILES['uploadedimage']['type'] = $files['type'][$i];
$_FILES['uploadedimage']['tmp_name'] = $files['tmp_name'][$i];
$_FILES['uploadedimage']['error'] = $files['error'][$i];
$_FILES['uploadedimage']['size'] = $files['size'][$i];
$fileName[] = $_FILES['uploadedimage']['name'];
$this->upload->initialize($config);
if ($this->upload->do_upload('uploadedimage'))
{
$data['uploads'][$i] = $this->upload->data();
}
else
{
$data['upload_errors'][$i] = $this->upload->display_errors();
}
}
}
$fname=implode(",",$fileName);
$files=$\u文件;
$cpt=count($_文件['fl']['name']);
如果($cpt请尝试此代码,我希望这是可以解决的
$files = $_FILES;
$cpt = count($_FILES['fl']['name']);
if($cpt<=10)
{
$number_of_files = sizeof($_FILES['fl']['tmp_name']);
$files = $_FILES['fl'];
$errors = array();
for($i=0;$i<$number_of_files;$i++)
{
if($_FILES['fl']['error'][$i] != 0) $errors[$i][] = 'Couldn\'t upload file '.$_FILES['fl']['name'][$i];
}
if(sizeof($errors)==0)
{
$this->load->library('upload');
$config['upload_path'] = FCPATH . './assets/upload/multiple/';
$config['allowed_types'] = 'gif|jpg|png|jpeg';
for ($i = 0; $i < $number_of_files; $i++) {
//$_FILES['uploadedimage']['ext'] = $this->get_extension($files['name'][$i]);
//echo $_FILES['uploadedimage']['ext'];
$_FILES['uploadedimage']['name'] = time().$i.$files['name'][$i];
$_FILES['uploadedimage']['type'] = $files['type'][$i];
$_FILES['uploadedimage']['tmp_name'] = $files['tmp_name'][$i];
$_FILES['uploadedimage']['error'] = $files['error'][$i];
$_FILES['uploadedimage']['size'] = $files['size'][$i];
$fileName[] = $_FILES['uploadedimage']['name'];
$this->upload->initialize($config);
if ($this->upload->do_upload('uploadedimage'))
{
$data['uploads'][$i] = $this->upload->data();
}
else
{
$data['upload_errors'][$i] = $this->upload->display_errors();
}
}
}
$fname=implode(",",$fileName);
$files=$\u文件;
$cpt=count($_文件['fl']['name']);
如果($cptIt看起来您的add_记录在循环结束之后,将只运行once@MattinWashington我已经检查过了,我试过了,但它仍然只有一个图像存储在数据库中。看起来你的add_记录是在循环结束后才运行的once@MattinWashington我已经检查过了,我试过了,但它仍然只存储了一个图像n数据库