Uploader plusieurs fichiers avec barre de progression ajax

Description

j'ai peut-être mal cherché sur le net, mais je n'ai pas trouvé de code me permettant de faire ca en ASP.NET / C# :
- Uploader plusieurs fichiers d'un coup (multi upload)
- Avoir une barre de progression montrant le niveau de l'upload (et d'autres infos)
- Pouvoir annuler l'upload à tout moment.
- Et le plus important, il ne doit y avoir rechargement de page visible pour l'utilisateur.

Voilà donc tout ce que permet ma source :P
Au final, ca fait bien *_*

(Notez qu'il faut pas trop chercher le côté esthétique de la chose, il faudrait rajouter des images ...)

Source / Exemple :


Tout est dans le zip ...

Conclusion :


Techniquement, le fonctionnement global est simple :

+ Pour faire du multi-upload :
> Du javascript côté client génère des input file, et cache celui que l'on vient de remplir.
Merci à Cyril qui m'a donné ce blog (http://blogs.codes-sources.com/themit/archive/2005/07/08/9062.aspx) pour un petit problème que j'avais...

+ Pour faire la barre de progression :
> Là, c'est un peu plus compliqué... une iframe est caché dans la fenêtre et les fichiers sont postés dedans et c'est un thread qui s'occupe de récupérer les fichiers.
Un système de communicaction est alors mis en place (via une variable de session) pour échanger les données entre le thread et la page qui fait des appels ajax.

+ Pas de rechargement de la page :
> Grâce à javascript (ajax) et l'iframe cachée, aucun chargement n'est visible !

---------
2,3 trucs pourraient être améliorés :
Afficher d'autres informations avec la barre de progression : temps d'attente ...
Embellir un peu le tout !
Forefox marche moins bien que IE7..........

---------
Tester sous :
Firefox 2.0.0.1 : marche mais c'est pas tout à fait ca encore.
IE 7 : pas de problème à signaler, fluide chez moi.

--------
Merci de vos commentaires, optimisations ...

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.