簡體   English   中英

PHP的MySQL阿賈克斯注冊表格與圖像上傳

[英]php mysql ajax register form with image upload

您好兄弟,我想問您如何使用image upload(base64)usign 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">

檢查我在項目中實現的工作示例,如何提交帶有圖像和一些數據字段的表單。

$(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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM