TypeError: 'append' appelée sur un objet qui n'implémente pas l'interface FormData. De nouveau

J'obtiens ces erreurs dans firebug lors de la tentative de faire une requête ajax upload, mais je ne peux pas comprendre pourquoi. J'ai été incapable de trouver une réponse dans tous les posts précédents.

1.TypeError: 'append' appelée sur un objet qui n'implémente pas l'interface FormData.
liste.appendChild(li);

2.TypeError: la liste est null
liste.appendChild(li);

<?php
if(!empty($_FILES['images'])){
if($_FILES['images']['error'][$key]== 0 ){
move_uploaded_file($_FILES['images']['tmp_name'], "../profile/1.jpg");
$uploaded='1';
///create thumbnail/////
}
echo 'Image uploaded'; 
}
?>
<!DOCTYPE html>
<html>
<head>
<title>TODO supply a title</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width">
<script src="../media/js/js.js"></script>
</head>
<body>
<form id="editUserProfile" method="post" action="" enctype="multipart/form-data">
<input type="file" id="images" name="images" multiple />
<button type="submit" id="btn" >Save</button>
</form>
<div id='response'>
<ul id='image-list'>
</ul>
</div>
<script type='text/javascript'>
(function (){
var input=document.getElementById('images'),
formdata=false;
function showUploadedItem(source){
var list=document.getElementById('image-list'),
li=document.createElement('li'),
img=document.createElement('img');
img.src=source;
li.appendChild(img);
list.appendChild(li);
}
if(window.FormData){
formdata=new FormData();
document.getElementById('btn').style.display="none";
}
input.addEventListener('change', function(evt){
document.getElementById('response').innerHTML='Uploading...'; 
var i=0,len=this.files.length,img,reader,file;
for(; i< len; i++){
file=this.files[i];
if(!!file.type.match(/image.*/)){
if(window.FileReader){
reader = new FileReader();
reader.onloadend=function(e){
showUploadedItem(e.target.result, file.fileName);
};
reader.readAsDataURL(file);
}
if(formdata){
formdata.append("images[]", file);
}
}
}
if(formdata){
$.ajax({
url:'a.php',
type:'POST',
data:formdata,
proccessData:false,
contentType:false,
success:function(res){
document.getelementById('response').innerHTML=res;
}
});
}
},false);
}());
</script>
</body>
</html>
  • Vous êtes de passage à deux paramètres à showUploadedItem() lorsque vous appelez à l'intérieur de votre input.addEventListener('change') bloc de code. showUploadedItem() n'accepte qu'un seul, de sorte source est en cours de mise à e.target.result et file.filename est ignoré.
  • merci, je vais essayer de le changer, et vous permettra de savoir..
InformationsquelleAutor Alex | 2014-02-23