我已经在stackOverflow中研究了很多答案,但还没有找到从表单上传图像的最简单方法。我试图找出一种使用Ajax上传图像的方法。虽然表单,PHP和Ajax编码很大,但我给你的重要部分。单击“提交”按钮时,会显示错误消息,即undefined index
。
HTML
<form method="post" enctype="multipart/form-data">
<tr>
<th>Image</th>
<td><input type="file" name="image" id="img"></td>
</tr>
</form>
Ajax
$(document).on('click','#sub_prod',function(event){
event.preventDefault();
$.ajax({
url:"product_add_back.php",
method:"post",
data:$('form').serialize(),
dataType:"html",
success:function(strMsg){
$("#prod_add").html(strMsg).show().fadeOut(3000);
}
})
})
PHP
$image_name=$_FILES["image"]["name"];
echo $image_name;
die();
答案 0 :(得分:1)
$().serialize()
不会包含$_FILES
个内容,因此您需要使用FormData
object
$(document).on('click','#sub_prod',function(event){
event.preventDefault();
var formdata = new FormData($('form')[0]);
$.ajax({
url: "product_add_back.php",
method: "post",
data: formData,
processData: false,
contentType: false,
success: function(strMsg){}
});
});
请注意您通过了3个参数:data: formData
,processData: false
和contentType: false