如何将文件codeigniter上传到数据库
Posted
技术标签:
【中文标题】如何将文件codeigniter上传到数据库【英文标题】:How to upload file codeigniter to database 【发布时间】:2020-07-22 00:24:13 【问题描述】:我试过了,但总是出现无法加载上传类的错误。
function save()
$id_pemesanan=$this->input->post('id_pemesanan');
$nama_pemesan=$this->input->post('nama_pemesan');
$email=$this->input->post('email');
$jumlah=$this->input->post('jumlah');
$tgl_bayar=$this->input->post('tgl_bayar');
$metode_pembayaran=$this->input->post('metode_pembayaran');
$data['id_pemesanan'] = $id_pemesanan;
$data['nama_pemesan'] = $nama_pemesan;
$data['email'] = $email;
$data['jumlah'] = $jumlah;
$data['tgl_bayar'] = $tgl_bayar;
$data['metode_pembayaran'] = $metode_pembayaran;
$this->db->trans_start();
$this->db->insert('konfirmasi', $data);
$this->db->trans_complete();
if ($this->db->trans_status() === FALSE)
$this->session->set_flashdata("msg", "<div class='alert bg-danger' role='alert'>
<a href='#' class='close' data-dismiss='alert' aria-label='close'>×</a>
<svg class='glyph stroked empty-message'><use xlink:href='#stroked-empty-message'></use></svg> Data gagal tersimpan.
</div>");
redirect('konfirmasi/konfirmasi_list');
else
$this->session->set_flashdata("msg", "<div class='alert bg-success' role='alert'>
<a href='#' class='close' data-dismiss='alert' aria-label='close'>×</a>
<svg class='glyph stroked empty-message'><use xlink:href='#stroked-empty-message'></use></svg> Data tersimpan.
</div>");
redirect('konfirmasi/konfirmasi_list');
这是我的模特
public function datakonfirmasi()
$query = $this->db->query('SELECT * FROM konfirmasi');
return $query->result();
这是我的观点
<div class="row">
<ol class="breadcrumb">
<li><a href="#"><svg class="glyph stroked home"><use xlink:href="#stroked-home"></use></svg></a></li>
<li class="active">konfirmasi</li>
</ol>
</div>
<!--/.row-->
<br>
<div class="row">
<div class="col-lg-12">
<div class="panel panel-default">
<div class="panel-heading"><svg class="glyph stroked male user "><use xlink:href="#stroked-male-user"/></svg>
<div class="panel-body">
<div class="col-md-6">
<form method="post" action="<?php echo base_url();?><?php echo $url;?>" enctype="multipart/form-data">
<input type="hidden" class="form-control" name="id_konfirmasi" value="<?php echo $id_konfirmasi;?>">
<div class="col-sm-5">
<label>Kode Pemesanan</label>
<input type="id_pemesanan" name="id_pemesanan" class="form-control" required="required" placeholder="Kode Pemesanan">
<br>
</div>
<div class="col-sm-5">
<label>Nama Pemesan</label>
<input type="nama_pemesan" name="nama_pemesan" class="form-control" required="required" placeholder="Masukan Nama..">
<br>
</div>
<div class="col-sm-5">
<label>Email</label>
<input type="email" name="email" class="form-control" required="required" placeholder="Masukan Email..">
<br>
</div>
<div class="col-sm-5">
<label>Jumlah Pembayaran</label>
<input type="jumlah" name="jumlah" class="form-control" required="required" placeholder="Masukan Jumlah Pembayaran">
<br>
</div>
<div class="col-sm-5">
<label>Tanggal Bayar</label>
<input type="date" name="tgl_bayar" class="form-control" required="required" placeholder="Tanggal Bayar">
<br>
<label>METODE PEMBAYARAN</label>
<select name="metode_pembayaran" id="metode_pembayaran" class="form-control">
<option value="BNI">BNI</option>
<option value="MANDIRI">MANDIRI</option>
<option value="BCA">BCA</option>
</select>
</div>
<br>
<div class="col-sm-5">
<label>Bukti Transfer</label>
<input type="file" name="gambar" required>
</div>
<div class="col-sm-5">
<br>
<br>
<br>
<a href="<?php echo base_url();?>konfirmasi/konfirmasi_list" class="btn btn-default">Batal</a>        
<button type="submit" class="btn btn-primary">Simpan</button>
</div>
</form>
</div>
</div>
</div>
</div>
<!--/.row-->
如何上传图片文件?
【问题讨论】:
【参考方案1】:在数据库中保存文件不是一个好习惯。您应该将文件保存到具有某个名称的某个文件夹中,并仅将该文件的路径存储在数据库中。每当您需要此文件时,您只需从文件系统中获取它 - 因为您知道此文件的路径
【讨论】:
【参考方案2】:将文件保存在 htdocs 中 code-igniter 的应用程序文件夹中的文件夹中,并将路径保存在数据库中。这将是一个很好的做法。
【讨论】:
【参考方案3】:试试这个:
在你的控制器中
function save()
//add yourmodel
$this->load->model('Yourmodels');
$id_pemesanan=$this->input->post('id_pemesanan');
$nama_pemesan=$this->input->post('nama_pemesan');
$email=$this->input->post('email');
$jumlah=$this->input->post('jumlah');
$tgl_bayar=$this->input->post('tgl_bayar');
$metode_pembayaran=$this->input->post('metode_pembayaran');
$this->db->trans_start();
改变
$this->db->insert('konfirmasi', $data);
到:
// call function insert_pemesanan on yourmodels
$this->Yourmodels->insert_pemesanan($data);
$this->db->trans_complete();
在 Yourmodels 添加函数 insert_pemesanan
function insert_pemesanan($value = [])
$this->db->insert('konfirmasi',$value);
【讨论】:
以上是关于如何将文件codeigniter上传到数据库的主要内容,如果未能解决你的问题,请参考以下文章
如何将图像路径和名称上传到数据库 - Codeigniter
如何使用 Codeigniter/PHP 将文件上传到亚马逊 S3?