将照片/文件上传到服务器PHP

时间:2012-08-02 20:40:47

标签: php ajax

我无法将图像/文件成功上传到我的服务器。 php如下:

//This is the directory where images will be saved
$uploadDir = "./";
$uploadFile = $uploadDir . basename( $_FILES['photo']['name']);

//Writes the photo to the server
if(move_uploaded_file($_FILES['photo']['tmp_name'], $uploadFile)){
    echo "The file has been uploaded successfully.";
} else {
    print_r($_FILES);
}

我选择了此脚本所在的目录,以确保在上传到最终目录之前的功能。我想上传照片,稍后会检查文件扩展名 - 但是现在我至少需要上传功能才能正常工作。

我返回一个空数组。

**编辑** 此外,表单上已启用enctype="multipart/form-data",我通过AJAX提交。

表格如下:

<form id="imageUploadForm" name="imageForm" enctype="multipart/form-data">
    <label for="photo" class="blogLabel">Upload an Image</label>
    <input type="file" name="photo" id="imageUpload" onChange="uploadImage();">
</form>

是的,我确实意识到我不应该使用“onChange”来提交表格,而是请与我一起。

提交表格的AJAX如下:

function uploadImage() {
    $.ajax({
        type:'POST', 
        url:'imageController.php', 
        data:$('#imageUploadForm').serialize(),
        success: function(responseSubmit) {
                alert(responseSubmit);
            }
     });
};

1 个答案:

答案 0 :(得分:4)

无法通过类似的Ajax上传文件。

这将导致根本没有文件上传

您只能按照您希望的方式提交常规表单提交文件到服务器。


如评论中所示 - 您可以执行隐藏的iframe技巧,将文件提交到服务器,而不使用ajax


you can use XHR2