我已设置代码以通过Ajax将formdata传递给我的php文件。我的代码可以正常工作,直到我实际选择图像,然后在我的php文件中收到解析错误。我收到未定义的索引错误。我有一个名为“ AddItemForm”的表单。我的图像输入行看起来像这样:
<input type="file" id="_ni_image_in" onchange="readURL(this);" name="ni_image" accept="image/png, image/jpeg">
我的javascript / ajax代码看起来像这样,当在表单上选择“提交”按钮时被调用:
function AddItem(){
var form = document.forms["AddItemForm"];
var name = document.forms["AddItemForm"]["ni_name"].value;
var tag = document.forms["AddItemForm"]["ni_tag"].value;
var description = document.forms["AddItemForm"]["ni_description"].value;
var weight = document.forms["AddItemForm"]["ni_weight"].value;
var date = document.forms["AddItemForm"]["ni__date"].value;
var color = document.forms["AddItemForm"]["ni_color"].value;
var itag2 = document.forms["AddItemForm"]["ni_tag2"].value;
var itag3 = document.forms["addcowform"]["ni_tag3"].value;
var useremail= "<?php echo $_SESSION['UserEmail']; ?>";
var itemdata = new FormData();
var filedata = document.getElementById("_nc_image_in").files[0];
itemdata.append('Item_Image', filedata);
itemdata.append('Name', name);
itemdata.append('Tag_Num', tag);
itemdata.append('Description', description);
itemdata.append('Weight', weight);
itemdata.append('Date', date);
itemdata.append('Color', color);
itemdata.append('Tag_Num2', itag2);
itemdata.append('Tag_Num3', itag3);
itemdata.append('User_Email', useremail);
var isValid = false;
$.ajax({
type: "POST",
url: "/AddNewItem.php",
data: itemdata,
processData: false,
contentType: false,
success: function(resp){
console.log(resp);
if(resp.reply == "Success")
{
isValid = true;
form.submit();
}
else
{
isValid = false;
}
},
error: function(data, status){
console.log(data, status);
alert("error")
}
}); //end Ajax
console.log(isValid);
return isValid;
};
在我的php文件中,我正在检索如下图像:
$itemmage = $_REQUEST["Item_Image"];
如果我没有选择图像,它就可以正常工作,因此获取或检索图像的方式出了点问题。请帮忙。
答案 0 :(得分:0)
使用$_FILES
代替$_REQUEST
// -----编辑----- //
if(isset($_FILES['image']) && $_FILES['image']['name']!=""){
$image_name= $_FILES['image']['name'];
move_uploaded_file( $_FILES['image']['tmp_name'], "images/$image_name");
}
$_FILES
每个图像都有一个数组:
[name] => MyFile.jpg
[type] => image/jpeg
[tmp_name] => /tmp/php/php6hst32
[error] => UPLOAD_ERR_OK
[size] => 98174