Php 将新图像文件名从控制器移动到模型
我需要一些帮助,将我的新图像文件路径从控制器移动到模型,如果我在执行printr时给出所有正确的值,则使用下面的当前代码,一旦我执行查询,它就会抛出此错误 注意:第17行C:\xampp\htdocs\app\models\Admin.php中未定义的索引:image\u路径 致命错误:未捕获PDOException:SQLSTATE[42000]:语法错误或访问冲突: 这是我的控制器代码Php 将新图像文件名从控制器移动到模型,php,sql,model-view-controller,Php,Sql,Model View Controller,我需要一些帮助,将我的新图像文件路径从控制器移动到模型,如果我在执行printr时给出所有正确的值,则使用下面的当前代码,一旦我执行查询,它就会抛出此错误 注意:第17行C:\xampp\htdocs\app\models\Admin.php中未定义的索引:image\u路径 致命错误:未捕获PDOException:SQLSTATE[42000]:语法错误或访问冲突: 这是我的控制器代码 public function addnew(){ if ($_SERVE
public function addnew(){
if ($_SERVER['REQUEST_METHOD'] == 'POST'){
$_POST = filter_input_array(INPUT_POST, FILTER_SANITIZE_STRING);
$data = [
'fname' => trim($_POST['fname']),
'lname' => trim($_POST['lname']),
'email' => trim($_POST['email']),
'contact' => trim($_POST['contact']),
'jobrole' => trim($_POST['jobrole']),
'bio' => trim($_POST['bio']),
'role'=> 'Service Advisor',
'password' => trim($_POST['password']),
'confirm_password' => trim($_POST['confirm_password']),
'fname_err' => '',
'lname_err' => '',
'email_err' => '',
'contact_err' => '',
'jobrole_err' => '',
'bio_err' => '',
'password_err' => '',
'confirm_password_err' => ''
];
//Validate
if(empty($data ['email'])){
$data['email_err'] = 'Please enter an Email Address';
} else {
if($this->adminModel->findUserByEmail($data['email'])){
$data['email_err'] = 'That email Already Exists';
}
}
if(empty($data ['fname'])){
$data['fname_err'] = 'Please enter a First Name';
}
if(empty($data ['lname'])){
$data['lname_err'] = 'Please enter a Last Name';
}
if(empty($data ['contact'])){
$data['contact_err'] = 'Please enter a Telephone Number';
}
if(empty($data ['jobrole'])){
$data['jobrole_err'] = 'Please enter a Job Role';
}
if(empty($data ['bio'])){
$data['bio_err'] = 'Please enter a short Bio';
}
if(empty($data ['password'])){
$data['password_err'] = 'Please enter a Password';
} else if (strlen($data['password']) < 6){
$data['password_err'] = 'Password must be 6 characters';
}
if(empty($data ['confirm_password'])){
$data['confirm_password_err'] = 'Please confirm your Password';
} else {
if($data['password'] != $data['confirm_password']){
$data['confirm_password_err'] = 'Passwords dont match';
}
}
//Make sure errors are empty
if (empty($data['email_err']) && empty($data['fname_err']) && empty($data['lname_err']) && empty($data['contact_err']) && empty($data['jobrole_err']) && empty($data['bio_err']) && empty($data['password_err']) && empty($data['confirm_password_err'])){
//Hash Password
$data['password'] = password_hash($data['password'], PASSWORD_DEFAULT);
//Work With Image
$image_path = $_FILES["fileToUpload"]["name"];
$temp_file_name = $_FILES["fileToUpload"]["tmp_name"];
$file_size = $_FILES["fileToUpload"]["size"];
$target_dir = "../public/ProfilePics/ServiceAdvisors/";
$new_name = $target_dir.time()."-".rand(1000, 9999)."-".$image_path;
$upload_ok = 1;
$img_file_type = pathinfo($new_name, PATHINFO_EXTENSION);
$check_img = getimagesize($temp_file_name);
$_POST['image_path'] = $new_name;
if($check_img == false) {
$upload_ok = 0;
} else {
if($file_size > 500000) {
$upload_ok = 0;
} else {
if($img_file_type != "jpg" && $img_file_type != "png" && $img_file_type != "jpeg" && $img_file_type != "gif") {
$upload_ok = 0;
} else {
if($upload_ok === 0) {
} else {
if(move_uploaded_file($temp_file_name, $new_name)){
$this->adminModel->addnew($data);
redirect ('administrator/serviceadvisors');
}
else {
die();
}
}
}
}
};
} else {
$this->view('administrator/addnew', $data);
}
} else {
//ReLoad Form and keep details
$data = [
'fname' => '',
'lname' => '',
'email' => '',
'contact' => '',
'jobrole' => '',
'bio' => '',
'password' => '',
'confirm_password' => '',
'fname_err' => '',
'lname_err' => '',
'email_err' => '',
'contact_err' => '',
'jobrole_err' => '',
'bio_err' => '',
'password_err' => '',
'confirm_password_err' => ''
];
$this->view('administrator/addnew', $data);
}
}
}
这是我的表格,我不打算发布所有表格,因为我知道有问题的地方
<fieldset class="form-group floating-label-form-group mb-1">
<label for="fileToUpload">Upload Profile Pic: <sup>*</sup></label>
<input type="file" name="fileToUpload" class="form-control round" value="<?php echo
$data['fileToUpload'];?>" accept="image/*" >
<span class="invalid-feedback"><?php echo $data['fileToUpload_err'];?></span>
</fieldset>
上传个人资料图片:*
Liek在前面提到,它是将图像路径放入模型中,以便我可以将其上载到db,图像保存在正确的文件夹中,只是没有发送图像路径
非常感谢您的任何帮助看起来您正在设置$POST数组中的图像路径,但在$data数组中应该设置该路径。我已在数据中设置了该路径,但它引发了另一个错误,我将很快再次尝试,并让您知道我在HI Rob中遇到的错误,以便让您知道我终于对其进行了排序,愚蠢的是,如果您查看一下我的模型代码中的查询行,就会发现:image\u path值后面缺少逗号:哦(啊,是这些小事让你着迷!很高兴你明白了。
<fieldset class="form-group floating-label-form-group mb-1">
<label for="fileToUpload">Upload Profile Pic: <sup>*</sup></label>
<input type="file" name="fileToUpload" class="form-control round" value="<?php echo
$data['fileToUpload'];?>" accept="image/*" >
<span class="invalid-feedback"><?php echo $data['fileToUpload_err'];?></span>
</fieldset>