php mysql ajax注册表单图片上传

时间:2014-12-02 08:16:18

标签: php mysql ajax forms post

你好兄弟我想问你如何使用图片上传(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">

1 个答案:

答案 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);