【问题标题】:Am trying to upload image using ajax php and jquery what am i doing wrong here我正在尝试使用 ajax php 和 jquery 上传图片我在这里做错了什么
【发布时间】:2017-07-10 11:13:27
【问题描述】:
$(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 插入数据库。

【问题讨论】:

    标签: ajax image upload


    【解决方案1】:

    您可以使用 FormData 对象,但您需要用纯 Javascript 编写代码,因为我认为 JQuery 还不支持它。请阅读本文以获取更多信息https://developer.mozilla.org/en-US/docs/Web/API/FormData/Using_FormData_Objects

    【讨论】:

    • 链接有时可能会过时或发生变化,这使得这个答案很弱。我建议您在答案中提供一些要点,并将链接作为来源。现在这是一个仅链接的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-03
    • 2013-06-28
    相关资源
    最近更新 更多