Bonjour,
Voilà plusieurs jour que je désespère à résoudre un problème concernant l'uploading de fichier sur CouchDB.
J'utilise Couchapp pour pousser mon site web qui se révèle très simple :
On renseigne le nom et la description d'un document puis on lui attache un fichier.
dans mon index.html mon formulaire est le suivant :
Code :
1 2 3 4 5 6 7 8
|
<form id="recipe-upload" enctype="multipart/form-data" action="" method="post">
Titre :<br><input type="text" size="77" name="title"/><br>
Message :<br><textarea rows="5" cols="100" name="message"></textarea><br>
Parcourir : <input type="file" name="_attachments">
<input type="hidden" name="_rev" value="">
<button name = "cmdCreatePost" type="submit" >Sauvegarder</button>
</form> |
ensuite lors de l'envoie du formulaire je déclenche le script js suivant :
Code :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
|
$("#recipe-upload").submit(function(event) {
var title_post, message_post, date_post, post, file_post;
event.preventDefault();// desactive les forms par default pour que AjaxSubmit puisse être utilisé
title_post = $('input[name="title"]').val();
message_post = $('textarea[name="message"]').val();
date_post = (new Date()).toLocaleString();
file_post = $('input[name="_attachments"]').val();
if (!file_post || file_post.length == 0) {
alert("le fichier est vide ou pas de fichier selectionné.");
return;
}
myStore.getDoc('counter',function(result){// le document counter nous sert à paginer les resultats
var counter;
if (result) {
counter = result;
counter.value += 1;
console.log("valeur du compteur : ", counter);
} else {
counter = {_id:'counter',value:0};// s'il n'y a pas de compteur on le crée
console.log("Création du compteur ...")
}
myStore.saveDoc(counter, function(){
var form =this;
var dbname = "novapost_db";
post = {
title : title_post,
messages : message_post,
date : date_post,
orderNumber : counter.value,
attachments : file_post
};
myStore.saveDoc(post, function(result){
$('input[name="_rev"]').val(post._rev);
var _attachments = $('input[name="_attachments"]').val();
if (_attachments) {
$('textarea[name="message"]').val("Uploading file...");
$(form).ajaxSubmit({//Attention necessaire car le code rev n'existe pas encore
url : "/"+dbname+"/"+$.couch.encodeDocId(post._id),
success : function(){
var test ="/"+dbname+"/"+$.couch.encodeDocId(post._id);
var test3=post._rev;
var test2 = $('input[name="_rev"]').val(post._rev);
$('textarea[name="message"]').val(test);
$('input[name="title"]').val(test3);
$('input[name="date"]').val("");
},
error:function(){ throw ("Problème bug fonction ajax "); }
});
}
else {
$('textarea[name="message"]').val("Epic fail...");
alert("no attachments");
}
});
});
});
}); |
Mais voilà le script ne crée aucune erreur (firebug ne remarque rien) mais le fichier n'est pas uploadé, j'ai juste droit à la description du fichier dans futon la SGBD de CouchDB
j'ai suivi ces tutoriels :
( à 44min).
Je pense que cela vient de la fonction ajaxSubmit() mais j'ai bien verifié la fonction réalise bien un "success".
Merci d'avance de votre aide.