codeigniter-3 - 无法以某种格式上传文件 - Codeigniter 3
问题描述
我在具有不同目录的 code-igniter 3 中创建了一个上传表单。起初,我在每个文件输入中创建了 excel 和 PDF 格式的上传表单。但后来,我的老板让我在上传表单中添加图片/jpeg。我认为只需在允许的类型中添加 jpg 并在控制器中添加一些 max_size 就可以了。但是文件没有保存在数据库或文件夹路径中,它只保存 excel 和 PDF 格式,我试图更改用户文件但无济于事。没有显示错误,所以我现在有点困惑。我希望你能帮助我,因为我还在学习 Code-igniter。
控制器:
public function file_data() {
$this->load->view('templates/header');
$data['program'] = $this->input->post('program');
$this->load->library('form_validation');
$this->form_validation->set_rules('program', 'Program', 'trim|required');
$this->form_validation->set_rules('file_nilai', 'File Nilai', 'required');
$this->form_validation->set_rules('file_absen', 'File Kehadiran', 'required');
//$this->load->library('upload');
$config['upload_path'] = './uploaded_files/laporan/absen';
$config['allowed_types'] = 'jpg|jpeg|pdf';
$config['max_size'] = '2048';
$this->load->library('upload');
$this->upload->initialize($config);
if (!$this->upload->do_upload('file_absen')) {
$this->session->set_flashdata('file_error', 'File type tidak sesuai.');
$this->load->view('guru/upload_form', $data);
} else {
$upload_data_absen = $this->upload->data();
unset($config);
$config['upload_path'] = './uploaded_files/laporan/nilai';
$config['allowed_types'] = 'xls|xlsx|pdf|jpg|jpeg';
$config['overwrite'] = FALSE;
$config['max_size'] = '2048';
$this->load->library('upload');
$this->upload->initialize($config);
if (!$this->upload->do_upload('file_nilai')) {
$this->session->set_flashdata('file_error', 'File type tidak sesuai.');
$this->load->view('guru/upload_form', $data);
} else {
$upload_data_nilai = $this->upload->data();
//get the uploaded file name
$data['file_absen'] = $upload_data_absen['file_name'];
$data['file_nilai'] = $upload_data_nilai['file_name'];
//store files data to the db
$this->laporan_model->simpan_data($data);
$this->session->set_flashdata('file_success', 'Upload File Berhasil!');
redirect(base_url() . "guru/laporan_np");
}
}
$this->load->view('templates/footer');
}
模型 :
function simpan_data($data){
$data_user=$this->session->userdata('username');
$insert_data['guru'] = $data_user;
$insert_data['program'] = $data['program'];
$insert_data['file_nilai'] = $data['file_nilai'];
$insert_data['file_absen'] = $data['file_absen'];
$query = $this->db->insert('berkas', $insert_data);
}
看法 :
<?php echo form_open_multipart('guru/laporan_np/file_data');?>
<div class="form-group">
<label for="file_nilai">File Nilai <span style="color:#FF0000">*</span>:</label>
<input type="file" name="file_nilai" class="form-control" id="file_nilai" required>
<span><p>Allowed file types: <strong>xls, xlsx, jpeg, jpg</strong></p></span>
<?php if ($this->session->flashdata('file_error')) { ?>
<div class="alert alert-danger alert-dismissible" style="width:20%"><button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> <?= $this->session->flashdata('file_error') ?> </div>
<?php } ?>
</div>
<div class="form-group">
<label for="file_absen">File Kehadiran <span style="color:#FF0000">*</span>:</label>
<input type="file" name="file_absen" class="form-control" id="file_absen" required>
<span><p>Allowed file types: <strong>pdf, jpeg, jpg</strong></p></span>
<?php if ($this->session->flashdata('file_error')) { ?>
<div class="alert alert-danger alert-dismissible" style="width:20%"><button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button><?= $this->session->flashdata('file_error') ?> </div>
<?php } ?>
</div>
<a href="<?=base_url(). 'guru/laporan_np';?>" class="btn btn-warning"><span class="fa fa-arrow-left"></span> Back</a>
<button type="submit" class="btn btn-success"><span class="fa fa-save"></span> Submit</button>
</form>
<?php echo form_close(); ?>
</div>
解决方案
你必须改变这个
$this->load->library('upload');
至
$this->load->library('upload',$config);
也许它会为上传文件造成问题。
并使用一种配置。
推荐阅读
- javascript - document.getElementByClassName 无法使用父类获取子元素的值
- python - Webscrape - 不同长度的字段
- java - 输入错误时循环?
- java - 编写程序以使用嵌套循环打印以下模式
- node.js - MongoDB 聚合:FieldPath 可能不以 $ 开头
- husky - husky pre-commit yarn/npm 测试对键盘输入没有反应
- angular - 如何将 api 密钥与发布请求一起传递
- javascript - 如何从 Javascript 库插入 MYSQL
- javascript - 如果嵌套数组不存在,则插入嵌套数组
- javascript - 在 setTimeout 完成之前不出现 Jest 测试 JavaScript 代码元素