Я успешно загрузил изображение в папку и его имя в базу данных, но тот же код не загружает файл в папку, но загружает имя в базу данных. Ниже приведен мой код для загрузки аудиофайла в мою музыку.
Функция контроллера
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
Попробуйте удалить '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');
}
}
В приведенном выше коде вы указали
if($query = TRUE){
$this->load->view('admin/success');
}
Поскольку это сравнение, а не задание, это следует исправить как
if($query == TRUE){
$this->load->view('admin/success');
}
Проверьте это по другим форматам файлов, независимо от того, получаете ли вы:
print_r($_FILES);
и вы используете =
вместо ==
в случае если.
попробуй это:
if($query = TRUE){
$this->load->view('admin/success');
}