如何将文件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'>&times;</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'>&times;</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> &nbsp &nbsp &nbsp &nbsp
                <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 删除上传的文件?

如何使用 Codeigniter/PHP 将文件上传到亚马逊 S3?

使用 codeigniter 将文件上传到数据库

如何将文件图像存储到 mysql (Codeigniter)

如何使用 PHP CodeIgniter 将 CSV 数据导入 MYSQL 数据库?