我尝试使用Codeigniter
将文件图像上传到mysql这可能是我的上传视图:
<label>Upload File</label>
<input type="file" class="form-control" name="images">
</div>
我已完成图像名称,描述等。
我尝试将其保存到数据库中,就像普通的输入表格一样。
结果,列“images”不能为null。我用varbinary(3000)
设置了列“images”我做错了吗?
编辑:
我的控制器:
public function save(){
$this->gallery_model->save_foto();
$this->session->set_flashdata('msg','FOTO BERHASIL DI UPLOAD');
redirect(base_url('gallery'));
}
我的模特
<?php
class Gallery_model extends CI_Model {
public function __construct() {
parent::__construct();
}
public function save_foto(){
$data['id'] = date('U');
$data['nm_foto'] = $this->input->post('nm_foto');
$data['username'] = $this->input->post('username');
$data['tanggal'] = date('j F Y');
$data['images'] = $this->input->post('images');
$data['deskripsi'] = $this->input->post('deskripsi');
$this->db->insert( 'gallery', $data );
}
}
答案 0 :(得分:0)
对于上传图片表格,请添加
enctype="multipart/form-data"
表格。
有关codeigniter中图片上传的更多帮助
答案 1 :(得分:0)
您可以存储图像但不建议使用。
“正确”的方法是将文件存储在服务器上的某个位置,并将URI存储在数据库中。
问题是图像可能非常大,这可能会导致数据库负载过大而这是不必要的。当您处理更大规模的项目时,您可能有多个需要同步的数据库,当您的数据库较大时,您需要不必减慢网络速度。
如果您仍希望将图像存储在数据库中,则可以将其存储为@objc func showMenu() {
// ...
}
类型。请参阅MySQL documenation
您可以使用以下示例代码
插入它BLOB
答案 2 :(得分:0)
如果有人遇到错误并且像我一样感到疲倦,可以使用简单的方法和代码将[图片]上传到资源文件夹
在控制器
中public function upd_gallery(){
$file = $this->input->post('img_name').".jpg";
move_uploaded_file($_FILES['images']['tmp_name'], './wheretosave/etc/etc'.$file);
redirect( base_url().'gallery');
}
设置应用程序 - &gt; config - &gt;路由
$route['gallery/upload2'] = 'gallery/upd_gallery';
将此视图添加到您的视图中
<?php
$ff = './where-to-save/etc/'.$this->input->post('img_name').'.jpg';
?>
<form action="<?= base_url()?>gallery/upload2" method="post" enctype="multipart/form-data">
<div class="form-group">
<input type="text" class="form-control" name="img_name" required="required">
</div>
<div class="form-group">
<input type="file" class="form-control" name="images">
</div>
<div class="form-group">
<button type="submit" class="btn btn-common" value="Update"> Upload</button>
</div>
</div>
</div>
当然,这种方式非常简单。您只需为图像命名并保存即可
答案 3 :(得分:0)
将图像保存在数据库中并不是一种好习惯。您可以使用以下代码在服务器的文件系统上存储文件。
$userfile= $this->input->post('userfile'); //gets image name only
if ($_FILES['userfile']['name'] != '') { //to check if you've selected any file
$path = './path/to/folder';
$config['overwrite'] = FALSE;
$config['encrypt_name'] = FALSE;
$config['remove_spaces'] = TRUE;
$config['upload_path'] = $path;
$config['allowed_types'] = 'jpg|png|gif|jpeg';
$config['max_size'] = '0';
if (!is_dir($config['upload_path']))
die("THE UPLOAD DIRECTORY DOES NOT EXIST");
$this->load->library('upload', $config);
if (!$this->upload->do_upload('userfile')) {
return "UPLOAD ERROR ! " . $this->upload->display_errors();
}
else {
$filepath = $this->upload->data();
$doc_path = $filepath['file_name'];
return $doc_path;
}
}