我试图使用ajax php和jquery上传图片我在这里做错了什么

时间:2017-07-10 11:13:28

标签: ajax image upload

$(document).ready(function(){
    $("#log").click(function(){
        var name = $("#name").val();
        var email = $("#email").val();
        var img = $("#img").val();

        $.ajax({
            url:"ajax.php",
            type:"POST",
            async:false,
            data:{
                "postD" :1,
                "nameD" : name,
                "emailD" : email,
                "imgD" : img

            },
            success:function(data){

                $("#name").val('');
                $("#email").val('');
                $("#img").val('');
            }
        });
}); 
});


function displaydata(){
    $.ajax({
        url:"ajax.php",
        type:"POST",
        async:false,
        data:{
            "displayP":1
        },
        success:function(data){
            $("#datafromDb").html(data);
        }
    });

}

<?php
include("db.php");

$sql = "
CREATE TABLE IF NOT EXISTS temptable (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(20) NOT NULL,
email VARCHAR(20) NOT NULL,
PRIMARY KEY(id)
);
";

mysqli_query($connect, $sql);

if (isset($_POST['postD'])){
        if(!empty($_POST['nameD']) && !empty($_POST['emailD'])&& !empty($_FILES['imgD'])) {


    $emailP = $_POST['emailD'];
    $nameP = $_POST['nameD'];
    $imgP = $_FILES['imgD']['name'];
    $tmpname = $_FILES['imgD']['tmp_name'];
    $folder = "upload/";

    move_uploaded_file($tmpname, $folder.$imgP);


$insert = "INSERT INTO `inserteddata` (`name`, `email`,`img`) 
                                VALUES('{$nameP}','{$emailP}','{$imgP}')";
    $qry = mysqli_query($connect, $insert);
    if($qry) {
        echo "inserted";
    }

        }else {
            echo "make sure all fields are filled";
        }

}

if(isset($_POST['displayP'])){
    $sel = "SELECT * FROM `inserteddata`";
    $res = mysqli_query($connect, $sel);

    while($row=mysqli_fetch_array($res)) {
        echo "Name = ".$row['name']."<br><br><br>";

    }
}


?>

<?php
$connect = mysqli_connect("localhost", "root", "", "ajaxinsert");
if(!$connect) {
    echo "database connection error".mysqli_error();
}else {

    echo "connected successfuly<br><br><br>";
}
?>

 <!DOCTYPE html>
<html>
<head>
<title>ajax insert</title>
<script type="text/javascript" src="jquery-3.2.1.js"></script>
<script type="text/javascript" src="ajax.js"></script>



</head>
<body>

<div id="datafromDb">
<script type="text/javascript">
document.write(displaydata());
</script>
</div>
  <br>

  <br>

  <form enctype="multipart/form-data" action="" method="post">
  <input type="text"  id="name"><br><br>
  <input type="email"   id="email"><br><br>
  <input type="file"   id="img"  name="img"><br><br>
  <input type="submit" value="Login" >
  <a href="" id="log" >add</a>


</body>
</html> 

我试图使用ajax php和jquery上传图片我在这里做错了什么。应该上传图像而不刷新页面。我试过上面的代码。如果你看到任何问题,请帮助!!

我想将上传的文件移动到上传文件夹,并将图像名称作为BLOB插入数据库。

1 个答案:

答案 0 :(得分:-1)

您可以使用FormData对象,但您需要使用纯Javascript编写代码,因为我认为JQuery尚不支持它。有关详细信息https://developer.mozilla.org/en-US/docs/Web/API/FormData/Using_FormData_Objects

,请阅读此内容
相关问题