上传的照片/文件到服务器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);
}
});
};
答
您不能通过这样的AJAX上传文件。
这将导致没有文件被上传!
您只能按照您想要的方式进行常规表单提交以将文件提交到服务器。
如图评论 - 你可以做一个隐藏的iframe招将文件提交给服务器不使用AJAX。
常见的错误是离开 “ENCTYPE =” 多部分/格式数据 “” 关闭的形式。 http://www.php.net/manual/en/features.file-upload.post-method.php – 2012-08-02 20:43:14
确实启用 - 对不起,应该记下这一点。我将编辑该问题以包含该问题。 – mdance 2012-08-02 20:45:07
发布整个表单,如果$ _FILES为空,则问题出在哪里 – 2012-08-02 20:46:00