代码适用于图像,但不适用于codeigniter

时间:2016-07-27 04:37:17

标签: php image file-upload codeigniter-3 database-update

我成功将图像上传到文件夹中,并将其名称上传到数据库,但是相同的代码不会将文件上传到文件夹中,而是在数据库中上传名称。以下是将音频文件上传到我的文件夹音乐的代码。

控制器功能

public function add_audio(){

        $config['upload_path'] = './musics/';
        $config['allowed_types'] = 'mp3';
        $config['max_size'] = '100000000000000';

        $this->load->library('upload',$config);
        chmod('musics/', 0777);
        $this->upload->do_upload('output');

        $data['audio'] = $_FILES['output']['name'];
        $this->load->model('main');
        $query = $this->main->insert('audio',$data);            

        if($query = TRUE){

            $this->load->view('admin/success');
        }
        else{

            redirect($_SERVER['HTTP_REFERER']);
        }   //end else
    }   //end function

3 个答案:

答案 0 :(得分:0)

在上面的代码中,您已指定

if($query = TRUE){
    $this->load->view('admin/success');
}

由于这是比较而不是作为分配,因此应将其更正为

if($query == TRUE){
    $this->load->view('admin/success');
}

答案 1 :(得分:0)

通过以下方式检查其他文件格式:

print_r($_FILES);

并且您在if条件中使用=而不是==

试试这个:

    if($query = TRUE){

             $this->load->view('admin/success');
    }

答案 2 :(得分:0)

尝试从'output'

中删除$this->upload->do_upload('output');

并尝试用以下代码替换您的部分代码:

if ( ! $this->upload->do_upload())
{
    $data['error'] = $this->upload->display_errors();    
    //line of codes that displays if there are errors
}
else
{
    $data['audio'] = $_FILES['output']['name'];

    $this->load->model('main');
    $query = $this->main->insert('audio',$data);

    if($query == TRUE){
        $this->load->view('admin/success');
    }
}