图片上传 ajax jquery

3

我是一名新手学习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';
     }
?>
1个回答

2
使用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';
     }
?>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接