Uploader plusieurs fichiers avec barre de progression ajax

Soyez le premier à donner votre avis sur cette source.

Vue 43 380 fois - Téléchargée 4 333 fois

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

Ajouter un commentaire

Commentaires

tikrimi
Messages postés
192
Date d'inscription
dimanche 5 janvier 2003
Statut
Membre
Dernière intervention
9 mars 2007
1 -
Bonsoir,

C'est effectivement très sympathique comme résultat? mais je reste toujours sur ma faim pour le chargement de plusieurs fichiers en html pur. Je rêve toujours de pouvoir sélectionner plusieurs fichiers d'un coup, ou un répertoire, ou de faire un glisser déposer comme ou peut le faire dans les sites de photos en installant un activex? elle va évoluer quand cette balse !!!
Kenshin07
Messages postés
7
Date d'inscription
lundi 23 janvier 2006
Statut
Membre
Dernière intervention
23 mars 2007
-
Ta fonction AddFile() en JavaScript est MAGNIFIQUE !!
Ce code me sauve la vie !!!!!

Merci Clemox

Kenshin07
cybergoustaf
Messages postés
10
Date d'inscription
mardi 17 septembre 2002
Statut
Membre
Dernière intervention
15 avril 2008
-
Bonjour,

Etant un néophite, je vais surement poser une question idiote:

J'ai chargé le projet dans visual studio 2005, mais quand je lance la compilation j'ai cette erreur:

"le type ou le nom d'espace 'Uploading' est introuvable"

pourtant, mon fichier Uloading.cs se trouve bien dans le sous répertoire App_Data du projet.

Quelqu'un aurai-t-il une solution?

Merci d'avance
cybergoustaf
Messages postés
10
Date d'inscription
mardi 17 septembre 2002
Statut
Membre
Dernière intervention
15 avril 2008
-
Oups, je viens de comprendre tout seul...j'avais mis le fichier Uloading.cs dans App_Data et non App_Code...désolé pour le dérangement
JPP80FR
Messages postés
29
Date d'inscription
samedi 23 octobre 2004
Statut
Membre
Dernière intervention
7 mai 2007
-
bonne application
petite amelioration "GetData()" pouvoir la possibilité de paramètre l'endroit où Enregistre les fichiers

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.