[AJAX] Téléchargement de fichier en AJAX.
Bonjour tout le monde,
Je voudrais faire une application javascript permettant de télécharger un fichier sur mon serveur en AJAX.
Comme sur le site : https://mega.co.nz/
Pour cela, j'ai une application serveur qui me découpe mon fichier en plusieurs parties.
Ces parties sont récupéré grâce a des requêtes AJAX.
La ou je bloque, c'est pour récupérer le résultats des requêtes AJAX qui sont asynchrones.
Voici le code que j'ai commencé a faire :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| //Buffer qui va contenir les données téléchargés
var buffer = new Array(nbParts);
//nbParts est le nombre de parties du fichier qui doivent être téléchargées
for(var i=0; i < nbParts; ++i) {
var ajax = getXMLHttpRequest();
//Reception du résultat des requêtes AJAX.
ajax.onreadystatechange = function() {
if (ajax.readyState == 4 && (ajax.status == 200 || ajax.status == 0)) {
buffer[i] = atob(ajax.responseText);
}
}
ajax.open("GET", url + "?type=download&file=" + alias + "&index=" + offset + "&size=" + parseInt(sizeParts-1), true);
ajax.send(null);
offset += sizeParts;
} |
Mais mon tableau buffer ne se remplis pas. :s
J'ai essayé de regarder les sources javascript du site mega, mais je n'arrive pas a comprendre comment ils font pour récupérer le résultats de ces requêtes asynchrones. (class ClassChunk du site mega)
J'ai aussi pensé a faire de la récursivité dans les fonctions callback des requêtes asynchrone, mais l’Intérêt du mode asynchrone est perdus...
Merci d'avance pour votre aide,