2009-02-12 6 views

Répondre

40

Non, ce n'est pas possible avec javascript. Pour donner le sentiment 'AJAX', cependant, vous pouvez soumettre un formulaire à un iframe caché et afficher les résultats du script, puis traiter à partir de là. Google ajax iframe upload et commencer à partir de là.

Si vous utilisez jQuery, il y a également le Form plugin qui créera automatiquement cette iframe si votre formulaire contient des champs de fichier. Je ne l'ai pas utilisé pour faire cela, mais j'ai entendu de bonnes choses.

Comme indiqué dans les commentaires, vous pouvez également utiliser quelque chose comme le très populaire SWFUpload pour obtenir l'effet désiré avec Flash.

+0

Vous pouvez également utiliser Flash. – Sampson

+0

ah, oui. Ajouté ça –

+0

Vous pouvez également utiliser Silverlight. – bendewey

0

Je ne l'ai pas utilisé personnellement, mais Ajax Uploader est un composant que j'ai récemment découvert qui dit qu'il peut faire des téléchargements de fichiers dans un UpdatePanel (en supposant que vous utilisez ASP.NET).

2

i utilise swfupload pour plusieurs ajouts comme ajax (le javascript/flash basé)

+0

im, im juste un peu un stickler sur réinventer la roue et le faire moi-même, au moins la première fois. je sais que c'est idiot, mais im juste le type de personne qui a besoin de faire ça;) – johnnietheblack

+0

Ce n'est pas idiot! en fait c'est génial. La seule façon d'apprendre. Et la partie amusante à apprendre. ;) –

1

strictement il est possible de faire real AJAX file uploads, mais cela n'est possible que dans Firefox 3+, Safari 4 et Chrome 2. Dans tous les autres navigateurs, vous devez utiliser une solution de contournement comme la technique iframe ou un uploader basé sur Flash.

29

Incase quelqu'un est de trouver cette question beaucoup plus tard: avec JavaScript oui cela est possible maintenant.

HTML5 a défini deux nouvelles API que vous utilisez ensemble pour accomplir ceci: l'API glisser-déposer et l'API de fichiers. Vous pouvez utiliser jQuery pour interagir avec les API, ce qui permet aux utilisateurs de faire glisser et déposer des fichiers à télécharger.

Voici a tutorial sur comment faire. Le code fonctionne actuellement dans Chrome 6+ et Firefox 3.6+, Safari 6 et IE 10. Si vous avez besoin de la prise en charge de Safari 5, le code reste presque le même mais vous utilisez l'objet FormData à la place pour la liste des fichiers téléchargés (plus d'informations dans le post). Opera prend en charge l'API de fichiers à partir de 11, mais pas l'API DnD, l'opération de suppression n'initiant pas le téléchargement, mais ils vous permettent d'accéder au fichier avec l'API. J'imagine en 12 qu'ils vont terminer le support de l'API DnD.

01-20-14 Mise à jour: Tous les principaux navigateurs implémentent maintenant toutes les API standard afin que ce tutoriel fonctionne dans tous les navigateurs.

+0

Merci du futur. (2020) –

Questions connexes