这是我的代码,我想在数据库中动态添加图片。我怎么能这样做?
这是我的控制器
if($this->input->post('title'))
{
$values['prootherinfo']=$this->AdminModel->select_table('pro_otherinfo');
foreach($values['prootherinfo']->result() as $r)
$image=$r->othr_info_image;
$path=FCPATH."assets/images/".$image;
unlink($path);
$target_dir = FCPATH."assets/images/";
$arrfile = pos($_FILES);
$target_file = $target_dir . basename($_FILES["userfile"]["name"]);
move_uploaded_file($_FILES["userfile"]["tmp_name"], $target_file);
$title = $this->input->post('title', true);
$desc = $this->input->post('desc', true);
$proid = $this->input->post('pro_id', true);
foreach ($title as $i => $a) { // need index to match other properties
foreach ($desc as $dd => $d)
$keyt = array(
'othr_info_image'=>$_FILES["userfile"]["name"],
'title' => $a,
'description' => $d,
'pro_id' => $proid
);
//print_r($keyt);
if (!$this->db->insert('pro_otherinfo', $keyt)) {
// quit if insert fails - adjust accordingly
print_r($keyt);
die('Failed insert');
}
}
}
这是我的观点
<input type="file" name="userfile[]">
答案 0 :(得分:0)
标题中的错误消息准确说明了错误的位置。您只需打印它就可以看到全局$ _FILES数组中的内容:
print_r($_FILES);
看起来像这样:
Array (
[userfile] => Array (
[name] => Array (
[0] => file.txt
)
[type] => ...
)
)
正如您所看到的, name 索引是一个数组而不是字符串。您必须选择要使用的这些文件中的哪一个(或全部使用)。
这意味着在您的示例中您可以使用
$target_file = $target_dir . basename($_FILES["userfile"]["name"][0]);
当然,您必须检查每个索引是否设置正确。