"上传路径似乎无效" Codeigniter图片上传

时间:2016-12-06 23:01:54

标签: php codeigniter

这已经被问了很多,但在尝试了很多事情之后,我仍然无法找到解决这个问题的原因。

我自动加载上传库。

我的文件夹结构是:

/application/
/assets/
    css/
    images/
        hero/
    js/
/system/

我的控制器:

$fileName = $this->input->post('title') . '_hero';
$filePath = './assets/images/hero/';
$config['allowed_types'] = 'gif|jpg|png';
$config['overwrite'] = true;

$this->upload->initialize($config);

if (!empty($_FILES['heroimage'])) {
    $config['file_name'] = $fileName;
    $config['upload_path'] = $filePath;

    if (!$this->upload->do_upload('heroimage')) {
        $error = array('error' => $this->upload->display_errors());
        var_dump($error);
    } else {
        $data = array('upload_data' => $this->upload->data());
        var_dump($data);
    }
}

我已尝试初始化它现在的状态并使用$this->load->library('upload', $config);,但两者都没有效果。

我还检查了目录是否存在以及它是否可写并且都返回true。

我尝试的另一件事是将上传路径设置为$config['upload_path'] = FCPATH.'assets\images\hero';

任何帮助我指向正确方向的人都将不胜感激。

1 个答案:

答案 0 :(得分:3)

您应该拥有配置数据,例如因为文件路径未初始化

https://www.codeigniter.com/user_guide/libraries/file_uploading.html#setting-preferences

$fileName = $this->input->post('title') . '_hero';
$filePath = './assets/images/hero/';
$config['upload_path'] = $filePath;
$config['allowed_types'] = 'gif|jpg|png';
$config['overwrite'] = true;

$this->upload->initialize($config);

if (!empty($_FILES['heroimage'])) {

  if (!$this->upload->do_upload('heroimage')) {

       // errors

  } else {

       $upload_data = $this->upload->data();

       echo $upload_data['file_name'];

  }
}