Chambs1 | 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 :
- <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 :
- $("#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 :
YouTube - ‪CouchApp Evently Guided Hack with CouchDB‬‏ ( à 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. |