使用Ajax将图像从输入表单发送到PHP脚本

时间:2017-04-05 00:24:40

标签: javascript php jquery ajax

我有一个非常简单的HTML页面,其中包含一个图片上传表单,如下所示:

<input type='file' id='image_uploaded' accept='image'/>
<input type='submit' id="upload_image"/>

到目前为止,对于我的Javascript,我有:

$(document).ready(function() {
    $("#upload_image").click(function() {
        $.ajax({
            url: "upload.php",
            type: "GET",
            //data: don't know what to put here
            success: function(data) {
                alert(data);
            }
        });
    });
});

upload.php到目前为止只是创建一个存储图像的目录,如果该目录尚不存在:

<?php
    define("IMAGE_DIRECTORY", "images");

    //If the directory for images does not exist, create it
    if(!is_dir(IMAGE_DIRECTORY)) {
        mkdir(IMAGE_DIRECTORY, 0777, true);
    }
?>

所以我不确定如何在Ajax调用中将图像发送到PHP脚本,然后如何处理PHP中的图像以将其保存到文件夹中?

1 个答案:

答案 0 :(得分:0)

PHP中有一些内置的变量可以帮助你解决这些问题,例如$ _FILES,所以只需这样做:
首先,将您的ajax类型更改为"POST"而不是"GET" 然后添加这些代码行来存储图像:

if(!move_uploaded_file($_FILES["file"]["tmp_name"], "path/to/file/".basename($_FILES["file"]["name"]))){
    die("Sorry, there was an error uploading your file.");
}