Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème d'AJAX pour un formdata.append

    23 octobre 2011 à 12:44:10

    Bonjour tout le monde,

    Je suis actuellement en train de créer une messagerie interne avec un système de pièces jointes. J'ai créé ma messagerie interne de toute pièce mais pour faire mon système de pièce jointe j'ai utilisé un script tout fait :euh: => http://net.tutsplus.com/tutorials/java [...] es-with-ajax/

    J'ai réussi à le paramétrer pour mon site, et je l'ai amélioré pour mon site : dès qu'un fichier est envoyé par l'utilisateur , il est envoyé sur le serveur et enregistré dans ma BDD mysql. Pour chaque entrée j'ai un id, une clé, et le nom du fichier mais mon problème est d'enregistrer ma clé générée sur ma page.

    Voilà mes codes pour mieux comprendre mon problème :D :

    Une partie de mon formulaire que l'utilisateur utilise pour envoyer des pièces jointes.
    <section id="piecess">
      <div id="jointes">
        <h1>Joindre une ou plusieurs pi&egrave;ces jointes :</h1>
        <form method="post" enctype="multipart/form-data"  action="upload.php">
            <input type="file" name="images" id="images" multiple />
            <input type="hidden" name="keyy" id="keyy" value="<?php echo $idpass; ?>"/>
            <button type="submit" id="btn">Upload Files!</button>
            <a class="vali" id="valii">Valider les pièces jointes</a>
        </form>
        <div id="response"></div>
        <ul id="image-list">
        </ul>
      </div>	
    </section>
    


    Voici mon générateur de clé :
    <?php 
      $idpass = sha1(microtime(NULL)*100000); 
    ?>
    


    Le code de traitement en AJAX :

    (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 = "<h2>Patientez . . . </h2>"
    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);
    formdata.append("keyy", text);
    }
    }
    }

    if (formdata) {
    $.ajax({
    url: "http://pharm10breizh.com/webroot/js/libs/upload/upload.php",
    type: "POST",
    data: formdata,
    processData: false,
    contentType: false,
    success: function (res) {
    document.getElementById("response").innerHTML = res;
    }
    });
    }
    }, false);
    }());


    La partie la plus importe de mon fichier JAVASCRIPT :
    if (formdata) {
        formdata.append("images[]", file);
        formdata.append( .....  , .......);	 // C'est ici que je dois envoyer ma clé ... je le supppose !			
    }
    


    Mais mon problème est d'envoyer ma clé mais étant donné que je n'ai aucune connaissance en javascript et donc ajax :-° je ne sais absolument pas comment trouver une solution à mon problème.

    Voici également mon code PHP de traitement de données : (qui fonctionne parfaitement :D )


    <?php
    
    foreach ($_FILES["images"]["error"] as $key => $error) {
        if ($error == UPLOAD_ERR_OK) {
            $name = $_FILES["images"]["name"][$key];
            move_uploaded_file( $_FILES["images"]["tmp_name"][$key], "uploads/" . $_FILES['images']['name'][$key]);
            mysql_connect('******', '*******', '*********');
    	mysql_select_db('*********');
            mysql_query("INSERT INTO piecesjointes VALUES('','".$_POST['keyy']."','".$_FILES['images']['name'][$key]."')");		
        }
    }
    
    
    echo "<h2>Fichier(s) téléchargés !</h2>";
    


    MERCI D'AVANCE !! :)
    • Partager sur Facebook
    • Partager sur Twitter

    Problème d'AJAX pour un formdata.append

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown