Je travaille sur une application web. Il existe un endroit où l'utilisateur peut télécharger des fichiers avec le protocole HTTP. Il y a le choix entre le classique transférer un fichier HTML de contrôle et une applet Java à télécharger les fichiers.
Le classique de transférer un fichier HTML n'est pas parce que vous ne pouvez sélectionner qu'un seul fichier à la fois, et il est assez difficile d'obtenir un progrès quelconque indication lors de l'upload (j'ai finalement obtenu l'aide d'une minuterie de l'actualisation d'un indicateur de progrès avec des données récupérées à partir du serveur via un appel AJAX). L'avantage: c'est toujours du travail.
Avec l'applet Java je peux faire plus de choses: sélectionner plusieurs fichiers à la fois (même dossier), compresser les fichiers, obtenir un réel progrès de la barre, faites glisser-déposer les fichiers sur l'applet, etc...
MAIS il y a quelques inconvénients:
- c'est un cauchemar pour qu'il fonctionne correctement sur Mac Safari et Firefox sur Mac (Merci Liveconnect)
- l'INTERFACE utilisateur n'est pas exactement le natif de l'INTERFACE utilisateur et certaines personnes remarquent que
- l'applet n'est pas aussi réactif qu'il devrait (peut-être ma faute, mais tout semble ok pour moi)
- il y a des bugs dans le Java
UrlConnection
classe avec HTTPS, donc j'utilise Apache HTTP communs client pour faire le téléchargement HTTP. Il est assez grand, un package et ralentit le téléchargement de la .fichier jar - Apache HTTP communs client a parfois de la difficulté à passer par des proxys
- l'environnement d'exécution Java est assez grand
J'ai été le maintien de cette applet Java pour un certain temps, mais maintenant j'en ai marre avec tous les inconvénients, et compte tenu de l'écriture/l'achat d'un tout nouveau composant de télécharger ces fichiers.
Question
Si vous aviez les exigences suivantes:
- télécharger plusieurs fichiers à partir d'un navigateur, via HTTP ou HTTPS
- compresser les fichiers pour réduire le temps de téléchargement
- télécharger devrait fonctionner sur n'importe quelle plateforme, avec native INTERFACE utilisateur
- doit être capable de télécharger de gros fichiers jusqu'à 2 go au moins
- vous avez carte blanche sur la technologie
Ce que la technologie/compontent utiliseriez-vous?
Edit :
- Drag'n'Drop de fichiers sur le composant serait un grand plus.
- Il semble qu'il y a beaucoup de problèmes liés à des bugs avec le Flash Player (swfupload problèmes connus). Bonne prise en charge Mac et télécharger via des proxys avec authentification sont des choix que je ne peut pas faire sans. Ce serait sans doute la règle de tous à base de Flash, options :-( .
- Je règle tous HTML/Javascript-options uniquement parce que vous ne pouvez pas sélectionner plus d'un fichier à la fois avec le HTML classique de contrôle. C'est une douleur d'cliquez sur n-fois le bouton "parcourir" si vous souhaitez sélectionner plusieurs fichiers dans un dossier.