图片上传ajax jquery


Image upload ajax jquery

我是jQuery的新手。我尝试使用ajax方法上传一个jpg图像文件。但当我上传时,它不会上传。有人能帮我做这个吗?

HTML

<form action="" method="POST" enctype="multipart/form-data">
     <input type="file" name="image" id="image"/>
</form>

jQuery

$('#submit').click(function()
{
    var image=$('#image').val()
        $.post("upload.php",{image:image},function(data)
        {
            alert(data);
        });
    }

})

PHP

<?php
     $image=$_POST['image'];
     $imagename=date("d-m-Y")."-".time()."jpg";
     $target_path = "uploads/".$imagename;
     if(move_uploaded_file($image, $target_path)) 
     {
          echo 'moved';
     }
     else
     {
          echo 'error';
     }
?>

要使用ajax上传文件,您必须使用FormData,如下所示。

$("form").on('submit', (function(e) {
    e.preventDefault;
    var formData = new FormData(this);
    $.ajax({
        url : "upload.php",
        type : "POST", 
        data : formData,
        cache : false,
        contentType : false,
        processType : false,
        success : function(data) {
            alert(data);
        }
    });
}));

您的PHP脚本应该如下所示。

<?php
     $image=$_FILES['image'];
     $image_tmp =$_FILES['image']['tmp_name'];
     $imagename=date("d-m-Y")."-".time().".jpg";
     $target_path = "uploads/".$imagename;
     if(move_uploaded_file($image_tmp, $target_path)) 
     {
         echo 'moved';
     }
     else
     {
         echo 'error';
     }
?>