我在上传文件后返回文件名时遇到问题。 当我按下提交按钮时,它将图像上传到文件夹但我没有得到文件名。
这是代码:
CONTROLLER:
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);
,则只显示,
。
答案 0 :(得分:1)
$this->upload->do_upload()
仅返回true或false。您必须使用$name_array[] = $this->upload->data('file_name');