php - 如何将图像保存在 CodeIgniter 根文件夹和数据库中?
问题描述
我需要让用户能够更改个人资料图片,但我找不到通过教授演练来显示 CodeIgniter 上传过程如何工作的清晰文档。
user_profile
我已经在主表中创建了一个名为的列。
我是控制器,我定义它的大小、类型并对其进行加密。
public function update_profile(){
$config["upload_path"] = "public/images/profile";
$config["allowed_types"] = "jpg|jpeg|gif|png";
$config["max_size"] = 700;
$config["max_width"] = 1024;
$config["max_height"] = 768;
$config["encrypt_name"] = TRUE;
$this->load->library("upload", $config);
if($this->upload->do_upload('user_profile'))
{
$info_arquivo = $this->upload->data();
$user_profile = $info_arquivo["file_name"];
$this->load->model("profile_model");
$image_perfil = array(
"user_profile" => $user_profile
);
$query = $this->profile_model->insert_image($image_perfil);
if($query){
$this->session->set_flashdata('msg', 'Imagem de perfilfoi atualizada');
redirect(base_url('admin/dashboard'), 'refresh');
} else {
$this->session->set_flashdata('msg', 'Imagem de perfil não foi atualizada');
redirect(base_url('admin/profile'), 'refresh');
}
}
else
{
$this->session->set_flashdata('msg', 'Imagem de perfil não foi atualizada');
redirect(base_url('admin/profile'), 'refresh');
}
}
在admin / profile
视图中,我输入了以下表格。
<!-- UPLOAD IMAGE USER -->
<?php echo form_open_multipart('admin/update_profile'); ?>
<div class="form-group">
<label>Selecione uma imagem</label>
<input type="file" name="user_profile" class="form-control" id="user_profile" required/>
</div>
<div class="form-group">
<button type="submit" class="btn btn-success pull-right" value="cadastrar">Cadastrar</button>
</div>
</form>
<!-- END UPLOAD IMAGE USER -->
在我的Profile_model
模型中,我将文件名插入到user_profile
列中
class Profile_model extends CI_Model{
public function insert_image($user_profile)
{
$this->db->insert('ci_users', $user_profile);
return $this->db->affected_rows() ? TRUE : FALSE;
}
}
解决方案
public function update_profile()
{
$config['upload_path'] = 'public/images/profile/';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = 1000;
$config['max_width'] = 1024;
$config['max_height'] = 768;
$this->load->library('upload', $config);
if ( ! $this->upload->do_upload('user_profile')) {
$error = array('error' => $this->upload->display_errors());
echo "<pre>";
print_r($error);
echo "</pre>";
die();
$this->session->set_flashdata('msg', 'Imagem de perfil não foi atualizada');
redirect(base_url('admin/profile'), 'refresh');
//$this->load->view('upload_form', $error);
}
else {
$info_arquivo = $this->upload->data();
$user_profile = $info_arquivo["file_name"];
$this->load->model("profile_model");
$image_perfil = array(
"user_profile" => $user_profile
);
$query = $this->profile_model->insert_image($image_perfil);
if($query){
$this->session->set_flashdata('msg', 'Imagem de perfilfoi atualizada');
redirect(base_url('admin/dashboard'), 'refresh');
} else {
$this->session->set_flashdata('msg', 'Imagem de perfil não foi atualizada');
redirect(base_url('admin/profile'), 'refresh');
}
}
}
看法
<!DOCTYPE html>
<html>
<head>
<title></title>
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
<!-- jQuery library -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<!-- Popper JS -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script>
<!-- Latest compiled JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
</head>
<body>
<form action="<?php echo base_url('stackoverflow/update_profile');?>" method="post" enctype="multipart/form-data">
<div class="form-group">
<label>Selecione uma imagem</label>
<input type="file" name="user_profile" class="form-control" id="user_profile" required/>
</div>
<div class="form-group">
<button type="submit" class="btn btn-success pull-right" value="cadastrar">Cadastrar</button>
</div>
</form>
</body>
</html>
推荐阅读
- javascript - 使用extendtraces添加颜色
- python - 创建 value=1 的记录子集。忽略其他值,因为它们不携带任何信息
- python - 如何为列表中的元素创建 if 语句?
- laravel - 使用关系表查询远距离关系
- python - 有没有办法阻止 __init__ 方法执行?
- ansible - 在使用库存信息的同时在本地运行 ansible playbook
- networking - 是否有任何协议或 API 可用于通过 wi-fi 进行物联网设备通信?
- python - 如何从 keras 的图像增强 API 计算生成图像的数量
- xml - 面临使用 XSL 将 XML 转换为另一个 xml 的问题
- angular - ReferenceError:“未定义谷歌”