上载文件后返回文件名时遇到问题。当我按提交按钮时,它会将图像上传到文件夹,但我没有得到文件名。
代码如下:
控制器:
public function add()
{
$title = $this->input->post('title');
$files = $this->do_upload();
//print_r($files);
$this->user->in($title,$files);
}
public function do_upload()
{
$name_array = array();
$files = $_FILES;
$cpt = count($_FILES['userfile']['name']);
for($i=0; $i<=$cpt-1; $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());
$data = $this->upload->do_upload();
$name_array[] = $data['file_name'];
}
$names = implode(',', $name_array);
return $names;
}
private function set_upload_options()
{
$config = array();
$config['upload_path'] = './portfolio/';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = '0';
$config['overwrite'] = FALSE;
return $config;
}
型号:
public function in($title,$file)
{
foreach ($title as $key => $n) {
$insert[] = array(
'title' => $n,
'file' => $file[$key]
);
}
$this->db->insert_batch('title',$insert);
}
查看:
<?php echo form_open_multipart('location/add'); ?>
<div>
<input type="text" name="title[]"><br>
<input type="file" name="userfile[]">
</div>
<br><br>
<div>
<input type="text" name="title[]"><br>
<input type="file" name="userfile[]">
</div><br>
<input type="submit" name="" value="enter">
<?php echo form_close(); ?>
如果我试着打印 $files
作为 print_r($files);
它只是展示了一个 ,
只是。
参考链接:使用codeigniter 2.0上传多个文件(数组)
1条答案
按热度按时间pb3skfrl1#
$this->upload->do_upload()
仅返回true或false。你必须用它来获取数据$name_array[] = $this->upload->data('file_name');