我正在使用 Codeigniter,我正在尝试将多个文件上传到数据库中。 这些文件是单独的字段,而不是一个字段的多个文件。
我关注了这篇文章 - http://codeigniter.com/forums/viewthread/110130/P0/
我几乎可以正常工作了,但是我在将上传的数据添加到我的数据库时遇到了一些问题。
这是我的 Controller 函数...
function addStation(){
// set common properties
$data['title'] = 'Add new station';
$data['action'] = site_url('admin/station/addStation');
$data['link_back'] = anchor('admin/station/index/','Back to list of stations',array('class'=>'back'));
// set validation properties
$this->_set_fields();
$this->_set_rules();
$config['allowed_types'] = 'pdf|xls|doc|docx';
$config['max_size'] = '1000';
$config['max_width'] = '1024';
$config['max_height'] = '768';
$path_to_uploads='./uploads/files/stations';
$config['upload_path'] = $path_to_uploads;
// File specific (overrule global and optional)
$config['logo_file']['upload_path'] = './uploads/images/stations';
$config['logo_file']['allowed_types'] = 'gif|jpg|png';
$this->load->library('upload', $config);
//add this
$this->upload->initialize($config);
if (!$this->upload->do_upload(array('rajar_file','playlist_file','map_file', 'logo_file'))){
$error = $this->upload->display_errors();
echo "<script>alert($error);</script>";
}else{
$data = array('upload_data' => $this->upload->data(array('rajar_file','playlist_file','map_file', 'logo_file')));
$rajar_file_name = $upload_data['rajar_file']['file_name'];
$rajar_full_file_path = $path_to_uploads.'/'.$rajar_file_name;
$playlist_file_name = $upload_data['playlist_file']['file_name'];
$playlist_full_file_path = $path_to_uploads.'/'.$playlist_file_name;
$map_file_name = $upload_data['map_file']['file_name'];
$map_full_file_path = $path_to_uploads.'/'.$map_file_name;
$logo_file_name = $upload_data['logo_file']['file_name'];
$logo_full_file_path = $path_to_uploads.'/'.$logo_file_name;
}
// run validation
if ($this->validation->run() == FALSE){
$data['message'] = '';
}else{
// save data
$station = array('name' => $this->input->post('name'),
'rajar' => $rajar_full_file_path,
'playlist' => $playlist_full_file_path,
'map' => $map_full_file_path,
'logo' => $logo_full_file_path );
$id = $this->stationModel->save($station);
// set form input name="id"
$this->validation->id = $id;
// set user message
$data['message'] = '<div class="success">add new station success</div>';
}
$this->template->set('title', 'Admin - Add New Station!');
$this->template->load('admin/template', 'admin/stationEdit', $data);
}
提交表单后出现以下错误...
消息: undefined variable :rajar_full_file_path
消息: undefined variable :playlist_full_file_path
消息: undefined variable :map_full_file_path
消息: undefined variable :logo_full_file_path
我是不是太傻了,我想不通?
谢谢 丹
最佳答案
似乎您的代码正在输入第一个 if 语句,然后通过表单验证(因此永远不会定义您的变量),然后尝试在第二个 else 代码块中使用这些变量。
关于php - Codeigniter - 多个文件上传 -> 插入数据库 - 有问题!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3117201/