Maison > interface Web > js tutoriel > Comment déclencher des téléchargements de fichiers avec Ajax et une action Struts2 ?

Comment déclencher des téléchargements de fichiers avec Ajax et une action Struts2 ?

Linda Hamilton
Libérer: 2024-12-19 14:26:10
original
777 Les gens l'ont consulté

How to Trigger File Downloads with Ajax and a Struts2 Action?

Téléchargement de fichiers asynchrone à l'aide d'Ajax

Dans le scénario fourni, vous rencontrez un problème dans lequel une action Struts2 est utilisée pour le téléchargement de fichiers, mais jQuery L'appel post() récupère le fichier sous forme de flux binaire au lieu d'ouvrir une fenêtre de téléchargement de fichier. Cet article vise à résoudre le problème et à fournir une solution pour ouvrir la fenêtre de téléchargement de fichiers.

La clé pour activer les téléchargements de fichiers à l'aide d'Ajax réside dans l'utilisation de l'en-tête de réponse Content-Disposition. Cet en-tête doit être défini sur pièce jointe ; filename={fileName}, où {fileName} représente le nom de fichier souhaité. En définissant cet en-tête, vous demandez au navigateur d'inviter l'utilisateur avec une fenêtre de téléchargement de fichier.

Pour modifier l'en-tête Content-Disposition de manière dynamique dans votre action Struts2, vous pouvez utiliser un intercepteur. Voici un exemple de la façon dont vous pouvez procéder :

public class DownloadInterceptor implements Interceptor {

    @Override
    public String intercept(ActionInvocation invocation) throws Exception {
        HttpServletResponse response = ServletActionContext.getResponse();
        response.setHeader("Content-Disposition", "attachment; filename=" + actionInvocation.getArgs()[0]); // Replace with your code
        return invocation.invoke();
    }

    @Override
    public void destroy() {}

    @Override
    public void init() {}
}
Copier après la connexion

Une fois que vous avez implémenté l'intercepteur, vous pouvez l'appliquer à l'action de téléchargement pour définir dynamiquement l'en-tête Content-Disposition.

Par en combinant ces étapes, vous pouvez configurer votre application Struts2 pour télécharger des fichiers de manière asynchrone à l'aide d'Ajax et permettre aux utilisateurs d'enregistrer les fichiers localement.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal