0

我无法成功地将图像/文件上传到我的服务器。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);
            }
     });
};
4

1 回答 1

4

不能像这样通过 ajax 上传文件。

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

您只能执行常规表单提交,以按照您想要的方式将文件提交到服务器。


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


或者 你可以使用 XHR2

于 2012-08-02T20:50:18.623 回答