上传文件点码器,检测不到变种

  • 本文关键字:变种 文件 php codeigniter
  • 更新时间 :
  • 英文 :


我正在尝试在Codeigniter上实现上传图像功能。但是,当我试图将图像插入数据库时。无法检测到变量。

这是我的控制器:

public function registrasi() {
	//VALIDATION
	$this->form_validation->set_rules('username', 'Username', 'required');
	$this->form_validation->set_rules('email', 'Email', 'required|trim|valid_email|is_unique[tb_m_user.email]');
	$this->form_validation->set_rules('password', 'Password', 'required|trim|min_length[3]|matches[konfirmasi_password]');
	$this->form_validation->set_rules('konfirmasi_password', 'Retype Password', 'required|trim|matches[password]');
		if($this->form_validation->run() == false) {
			$this->session->set_flashdata('fail' , 'Registration Failed! Please Try Again');
			$this->load->view('auth/registrasi');
		}else{
			//INSERT TO DATABASE
			$username 	= $this->input->post('username');
			$email 		= $this->input->post('email');
			$password 	= password_hash($this->input->post('password'), PASSWORD_DEFAULT);
			$pict 		= $_FILES['pict'];
					
				//LIBRARY UPLOAD CONFIG
				$config['upload_path']		= '/assets/dist/foto_validasi';
				$config['allowed_types']	= 'jpg|png';
				$config['file_name']		= date('ymd');
				$this->load->library('upload', $config);
						
				if(!$this->upload->do_upload('pict')){
					echo "Upload Failed"; 
				}else{
					$pict = $this->upload->data('file_name');
				}
			$data = [
				'user_name'   => $username,
				'email'       => $email,
				'password'  => $password,
				'role'        => 'pengguna',
				'img'	      => $pict,
				'status_aktivasi'	=> 'tidak aktif',
				'created_by'		=> 'SYSTEM',
			];
				$this->m_auth->registrasi($data, 'tb_m_user');
				$this->session->set_flashdata('success' , 'Registration Successful! Please Login');
				Redirect('Auth/login');
			}
		}
		public function login() {
			$this->form_validation->set_rules('email', 'Email', 'required');
			$this->form_validation->set_rules('password', 'Password', 'required');
			if ($this->form_validation->run() == false) {
				$this->load->view('auth/login');
			}else{
				$this->postlogin();
			}
		}

这是我的表单视图:

<?= form_open_multipart('Auth/registrasi'); ?>
<div class="border-top mt-3">
<div class="ml-2">
<label class="mt-2">Upload Kartu Identitas</label>
</div>
<div class="input-group mb-3">
<input type="file" class="form-control" placeholder="Upload Foto Identitas" name="pict">
<div class="input-group-append">
<div class="input-group-text">
<span class="fas fa-file-image"></span>
</div>
</div>
</div>
<small class="text-danger"><?= form_error('foto') ?></small>
</div>
<?= form_close(); ?>

这是错误:错误



我甚至试图将变量从:更改为

$pict=$this->upload->data('file_name'(;

'img'=>$pict,

到:

$pict2=$this->upload->data('file_name'(;

'img'=>$pict2,


,但它得到了另一个错误:error2

如果您希望上传功能是必需的,您可以修改如下代码:

public function registrasi() {
//VALIDATION
$this->form_validation->set_rules('username', 'Username', 'required');
$this->form_validation->set_rules('email', 'Email', 'required|trim|valid_email|is_unique[tb_m_user.email]');
$this->form_validation->set_rules('password', 'Password', 'required|trim|min_length[3]|matches[konfirmasi_password]');
$this->form_validation->set_rules('konfirmasi_password', 'Retype Password', 'required|trim|matches[password]');
if($this->form_validation->run() == false) {
$this->session->set_flashdata('fail' , 'Registration Failed! Please Try Again');
$this->load->view('auth/registrasi');
}else{
//INSERT TO DATABASE
$username   = $this->input->post('username');
$email      = $this->input->post('email');
$password   = password_hash($this->input->post('password'), PASSWORD_DEFAULT);
$pict       = $_FILES['pict'];
//LIBRARY UPLOAD CONFIG
$config['upload_path']      = '/assets/dist/foto_validasi';
$config['allowed_types']    = 'jpg|png';
$config['file_name']        = date('ymd');
$this->load->library('upload', $config);
if(!$this->upload->do_upload('foto')){
echo "Upload Failed"; 
$this->session->set_flashdata('fail', $this->upload->display_errors() );
redirect( 'auth/registrasi' );
}else{
$pict = $this->upload->data('file_name');
$data = [
'user_name'   => $username,
'email'       => $email,
'password'  => $password,
'role'        => 'pengguna',
'img'         => $pict,
'status_aktivasi'   => 'tidak aktif',
'created_by'        => 'SYSTEM',
];
$this->m_auth->registrasi($data, 'tb_m_user');
$this->session->set_flashdata('success' , 'Registration Successful! Please Login');
Redirect('Auth/login');
}
}
}

$this->upload->display_errors()代码将在不符合要求的上传文件上显示错误消息,因此,如果未上传文件,则不会保存注册数据。

将post字段名称更改为(!$this->upload->do_upload('ict'(({

if(!$this->upload->do_upload('pict')){ // You should change this 

size属性应该存在于输入字段中

<input type="file" size="1" class="form-control" placeholder="Upload Foto Identitas" name="pict">

相关内容

  • 没有找到相关文章

最新更新