I want to submit my image via jquery and ajax , this is my code:
JavaScript
x
<form name="photo" id="imageUploadForm" enctype="multipart/form-data" action="<?php echo $base_url ?>admin/resid.php" method="post">
<input type="file" accept="image/*" id="imguploadresid" />
</form>
<Script>
$("#imguploadresid").on("change", function() {
$("#imageUploadForm").submit();
});
$('#imageUploadForm').on('submit',(function(e) {
e.preventDefault();
var form = $('#imageUploadForm')[0];
var formData = new FormData(form);
$.ajax({
type:'POST',
url: "<?php echo $base_url ?>admin/resid.php",
data:formData,
cache:false,
enctype: 'multipart/form-data',
contentType: false,
processData: false,
success:function(data){
console.log("succes")
},
error: function(data){
console.log("error");
}
});
}));
just to add some explanation , when the use choose an image , the form submits immediately .
it works fine and post the data to my php page , but it’s empty and has no data
I put print_R($_POST) in my page and the result is
JavaScript
Array
( )
I logged the ajax post and there was no data posting .
what is the problem ?
Advertisement
Answer
Your image is probably in PHP array $_FILES. You must download your file from it to get your image.
JavaScript
$yourImage = file_get_contents($_FILES['image']['tmp_name']);
You have also to add “name” attribute to your input:
JavaScript
<form name="photo" id="imageUploadForm" enctype="multipart/form-data" action="<?php echo $base_url ?>admin/resid.php" method="post">
<input name="image" type="file" accept="image/*" id="imguploadresid" />
</form>