2010-07-01 12 views
0

Je dois télécharger un fichier avec jquery. J'ai maintenant environ uploadify plugin, mais je ne veux pas utiliser un tel plugin pour cela.Télécharger le fichier avec jquery

J'ai une idée, comment puis-je le faire, pourriez-vous me dire si cela va fonctionner?

Si je transmets la valeur de l'entrée <input type="value"> en tant que variable javascript au fichier some.php via ajax, puis que je télécharge, cela fonctionnera-t-il?

Merci?

Répondre

2

JavaScript ne peut pas effectuer seul les téléchargements de fichiers sans l'aide de Flash, c'est pourquoi vous avez besoin de quelque chose comme Uploadify ou SWFUpload pour faire le travail.

Une solution de contournement est peut-être l'utilisation d'un iframe invisible que vous téléchargez à l'aide de la propriété target du formulaire. Cela fonctionne de la manière traditionnelle, mais l'utilisateur peut rester sur la page actuelle:

<form target="iframe_id" .... 
+0

pourriez-vous me donner un lien sur les iframes une telle utilisation? – Simon

+0

@Syom c'est vraiment simple: avoir un IFrame avec un ID, et définir la cible du formulaire à cet id. Si vous avez besoin de plus de détails, je pense que @andy a un bon lien dans sa réponse. –

2

Je suppose la raison vous voulez faire ceci est ainsi vous pouvez avoir un fichier de style asynchrone télécharger et afficher des informations sur le fichier téléchargé après que le téléchargement est terminé (une vignette, par exemple, avec des images). La page jQuery From Plugin a une option qui couvre iframe uploads qui semble plutôt bonne.

J'ai également utilisé le Ajax IFrame Method, qui fonctionne bien, mais qui n'est pas structuré comme un plugin jQuery. Bien que ça joue bien. Fondamentalement, ce que ces deux plugins font, est d'attacher un gestionnaire d'événement onsubmit à votre formulaire. Lorsque le formulaire est soumis, le plugin capture l'événement, crée un cadre iFrame caché sur la page, clone les champs de formulaire à partir du formulaire de soumission et le soumet à la place. Le résultat est que les données de formulaire d'origine sont soumises, mais la page visible de l'utilisateur n'a pas besoin d'être dirigée vers l'URL dans l'action de formulaire.

Bien sûr, une fois que le formulaire iframe a fini de soumettre, vous pouvez déclencher un rappel et effectuer les scripts de post-soumission dont vous avez besoin. La méthode ajax iframe que j'ai liée à ci-dessus a une bonne documentation pour cela.