你好兄弟我想问你如何使用图片上传(base64)使用php mysql ajax进行注册表格,这是我的代码的一部分,但它没有工作。我希望你告诉我表格行的类型,并给我一个代码来执行此操作。
$("#dsubmit").click(function(){
var formData = new FormData(this);
demail=$("#demail").val();
dpassword=$("#dpassword").val();
dfirstname=$("#dfirstname").val();
dlastname=$("#dlastname").val();
dtel=$("#dtel").val();
dadr=$("#dadr").val();
dspeciality=$("#dspeciality").val();
dcodepost=$("#dcodepost").val();
$.ajax({
type: "POST",
url: "inc/regdoc.php",
data: formData,"&demail="+demail+"&dpassword="+dpassword+"&dfirstname="+dfirstname+"&dlastname="+dlastname+"&dtel="+dtel+"&dadr="+dadr+"&dspeciality="+dspeciality+"&dcodepost="+dcodepost,
async: false,
cache: false,
contentType: false,
processData: false,
success: function(html){
if(html=='true') {
$("#dmsg_box_connexion").css("color","green");
$("#dmsg_box_connexion").html("Utilisateur Ajouté avec succés ! Redirection ...");
window.setTimeout(function(){window.location.href = "index.php";}, 5000);
} else {
$("#dmsg_box_connexion").html("S'il vous plaît remplir tous les champs");
}
},
beforeSend:function() {
if((demail == "")||(dfirstname == "")||(dlastname == "")||(dtel == "")||(dpassword == "")||(document.getElementById("dfile").value == "")||(dcodepost == "")||(dadr == "")) {
$("#dmsg_box_connexion").css("color","red");
$("#dmsg_box_connexion").html("Tous Les Champs Sont Obligatoires !");
return false;
}
$("#dmsg_box_connexion").css("clor", "#32b1d3");
$("#dmsg_box_connexion").html("Validation...");
}
});
return false;
});
});
这是php文件:
session_start();
$email = addslashes(htmlentities($_POST["demail"]));
$password = addslashes(htmlentities($_POST["dpassword"]));
$firstname = addslashes(htmlentities($_POST["dfirstname"]));
$lastname = addslashes(htmlentities($_POST["dlastname"]));
$codepost = addslashes(htmlentities($_POST["dcodepost"]));
$adresse = addslashes(htmlentities($_POST["dadr"]));
$tel = addslashes(htmlentities($_POST["dtel"]));
$speciality = addslashes(htmlentities($_POST["dspeciality"]));
$get_content = file_get_contents($_FILES['dfile']['tmp_name']);
$escape = mysql_real_escape_string($get_content);
$sourcePath = $_FILES['dfile']['tmp_name']; // Storing source path of the file in a variable
$targetPath = "uploads/".$_FILES['dfile']['name']; // Target path where file is to be stored
move_uploaded_file($sourcePath,$targetPath) ; // Moving Uploaded file
$pass = sha1($password);
include ('pgs/config.php');
$insert = $bdd->query("INSERT INTO tbl_docs VALUES ('','$firstname','$lastname','$tel','$adresse','$speciality','$email','$pass','$escape','1','$codepost')");
if($insert == 1) {
echo 'true';
} else {
echo 'false';
}
这是表格标题:
<form id="d" method="post" action="#inc/regdoc.php" enctype="multipart/form-data">
答案 0 :(得分:0)
检查我在项目中实现的工作示例,如何提交带有图像和某些数据字段的表单。
$(document).on('submit', '#catcategory-form', function(event) {
event.preventDefault();
$.ajax({
url: "product.php",
method: 'POST',
data: new FormData(this),
dataType: 'json',
contentType: false,
processData: false,
success: function(infodata) {
if(infodata=='true'){
//do the stuff whatever you want
}
});
});
您可以使用图像上传的另一个选项是转换base64。您要做的是在base 64上转换表单图像,并在onChange事件上将其发送到php,然后将其上传到文件中,并在数据库中保留唯一名称
//Call this function after getting base64 by post
$imageBase64=$_POST['image_converted_base64'];//get base64 of image from client end
$unique_name =uploadSingleImage($imageBase64);//function call
//function to upload image and get an unique name to store in db
function uploadSingleImage($base64) {
$uniname = uniqid() . date("Y-m-d-H-i-s") . ".jpg";
$new_image_url = "../../image/" . $uniname;
$base64 = 'data:image/jpeg;base64,' . $base64;
$base64 = base64_decode(preg_replace('#^data:image/\w+;base64,#i', '', $base64));
file_put_contents($new_image_url, $base64);
return $uniname;
}
$sql = "INSERT INTO `table1`(image_name) VALUES('$unique_name')";
$conn->query($sql);