代码适用于图像,但不适用于 codeigniter 中的其他文件

Code works for image but not for other files in codeigniter

我已成功将图像上传到文件夹并将其名称上传到数据库,但相同的代码不会上传文件夹中的文件,而是上传 database.Following 中的名称是我将音频文件上传到的代码我的文件夹 musics.

控制器功能

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

在上面的代码中你指定了

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

因为它是比较而不是赋值,所以应该更正为

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

通过其他文件格式查看是否获取:

print_r($_FILES);

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

试试这个:

    if($query = TRUE){

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

尝试从 $this->upload->do_upload('output');

中删除 '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');
    }
}