检查文件字段是否设置了codeigniter

时间:2014-10-20 23:28:31

标签: php codeigniter

情况:获得了一个类似系统的新闻源,您可以在每个帖子中添加图像。这些帖子也可以更新。当有更新时,除非图像发生变化,否则数据库中的图像值应保持不变。

目前在我的控制器中使用它:

            $this->load->library('upload'); //initialize
            if (isset($_FILES['userfile']) && is_uploaded_file($_FILES['userfile']['tmp_name'])) {
                $this->upload->initialize($config);
                $this->upload->do_upload('userfile');
                $imageData = $this->upload->data();
                $data['front_image'] = $imageData['file_name'];
             }

但是你可以猜到这并没有成功。 有什么建议吗?

2 个答案:

答案 0 :(得分:0)

            $this->load->library('upload'); //initialize
        if ($_FILES['userfile'][size] !=0 && is_uploaded_file($_FILES['userfile']['tmp_name'])) {
            $this->upload->initialize($config);
            $this->upload->do_upload('userfile');
            $imageData = $this->upload->data();
            $data['front_image'] = $imageData['file_name'];
         }

检查文件大小解决了问题。

答案 1 :(得分:0)

您可能正在做更多需要的工作。我暂时没有使用过CI,但我很确定你可以查看$this->upload->do_upload()的结果。我相信Upload类会检查文件是否存在并返回falsey(< - not a word)值。

$this->load->library('upload', $config);
// or $this->upload->initialize($config);// if you're autoloading

if ($this->upload->do_upload()) {
    $imageData = $this->upload->data();
    $data['front_image'] = $imageData['file_name'];
} else {
    echo $this->upload->display_errors();
}

另外,如果你在一个框架(CodeIgniter,Laravel等),你真的不应该检查全局PHP变量。大多数东西都是为你包裹的。