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

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

问题描述:

我无法成功上传图像/文件到我的服务器。 php如下:上传的照片/文件到服务器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); 
      } 
    }); 
}; 
+6

常见的错误是离开 “ENCTYPE =” 多部分/格式数据 “” 关闭的形式。 http://www.php.net/manual/en/features.file-upload.post-method.php – 2012-08-02 20:43:14

+0

确实启用 - 对不起,应该记下这一点。我将编辑该问题以包含该问题。 – mdance 2012-08-02 20:45:07

+0

发布整个表单,如果$ _FILES为空,则问题出在哪里 – 2012-08-02 20:46:00

不能通过这样的AJAX上传文件。

这将导致没有文件被上传

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


如图评论 - 你可以做一个隐藏的iframe招将文件提交给服务器不使用AJAX


或者 you can use XHR2

+0

我已经说过:-) – 2012-08-02 20:51:17

+0

@Dagon哈哈我刚刚加载的评论:-P伟大的思想认为一样^ _^ – Neal 2012-08-02 20:51:33

+0

@downvoter - 为什么downvote?这是对的! – Neal 2012-08-02 20:51:46