簡體   English   中英

無法以Codeigniter文本格式上傳文件

[英]Unable to upload file in codeigniter text form

我有一個可以正常工作的文本表單,也有一個文件上傳表單,可以使用codeigniter文檔中的確切示例工作,但我似乎無法將兩者放在一起。 我想要一個允許文本和文件上傳的表格。 文本應轉到數據庫,然后將文件與文件路徑一起保存到數據庫中。

我嘗試添加

enctype="multipart/form-data"

到我的文本表單和文件上傳表單元素。 當前,form操作是以下方法(請參見下文)。 我試圖將來自codeigniter doc的方法添加到下面的方法中,以允許文件上傳,但是不幸的是,這不起作用。 我究竟做錯了什么? 我懷疑我需要調用$ _file嗎?

public function save()
{
    $project_id = $this->input->post('project_id');
    $id = $this->input->post('task_id');

    if($this->input->post('cancel') !== FALSE) {
        if($id)
            redirect('task/view/'.$project_id.'/'.$id);
        else
            redirect('project/tasks/'.$project_id);
    }

    $this->load->library('form_validation');

    $this->form_validation->set_rules('title', 'Title', 'trim|required');
    etc....

    if($this->form_validation->run() === false)  {
        $this->error = true;

        if ($id)
            $this->edit ($project_id, $id);
        else
            if($project_id)
                $this->add ($project_id);
            else
                redirect('dashboard');

        return;
    }

    $this->load->model('task_model');

    $sql_data = array(
        'project_id'  => $project_id,
        etc...
    );
    if ($id)
        $this->task_model->update($this->input->post('project_id'), $id, $sql_data);
    else
        $id = $this->task_model->create($sql_data);

    //add in upload function here
    $config['upload_path'] = './upload/cell/';
    $config['allowed_types'] = 'gif|jpg|png|tif';
    $config['max_size'] = '1000';
    $config['max_width']  = '2024';
    $config['max_height']  = '1768';

    $this->load->library('upload', $config);

    if ( ! $this->upload->do_upload())
    {
        $error = array('error' => $this->upload->display_errors());

        $this->load->view('upload_forms', $error);
    }
    else
    {
        $data = array('upload_data' => $this->upload->data());
    }
            // end of added uploader code

    redirect('project/tasks/'.$this->input->post('project_id'));
}

嘗試使用字段名稱

 $this->upload->do_upload('upload');

代替

$this->upload->do_upload();

HTML中的字段可能在哪里

<input type="file" name="upload"/>

根據Codeignitor文檔:

If you would like to set your own field name simply pass its 
value to the do_upload function

另外,請確保您的上傳路徑有效且可寫

在這里查看更多信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM