IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Struts 1 Java Discussion :

probleme ouvrir un fichier


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 106
    Par défaut probleme ouvrir un fichier
    Bonjour,
    J’ai un petit problème pour télécharger et afficher un fichier. En effet en cliquant sur un lien dans la page jsp je me dérige vers mon action dans la quelle je récupère l’emplacement de mon fichier sur un lecteur donné (C, D, ou autre).
    Je voudrais savoir comment a partir de mon action je pourrais ouvrir et afficher le fichier ?
    Est-ce que quelqu’un a une idée ?
    Merci

  2. #2
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 106
    Par défaut
    est ce que quelqu'un a une solution ?
    merci

  3. #3
    Membre confirmé
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    167
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 167
    Par défaut
    La réponse à ton problème est DownloadAction.

    Ci-joint mon implementation... Elle permet d'ouvrir la popup d'enregistrement d'un fichier afin de le downloader.

    Tout d'abord un bean que tu pourras faire enrichir à souhait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
     
    /**
     * 
     */
    package package.domain;
     
    import java.io.Serializable;
     
    /**
     * @author jean.vacheron
     * 
     */
    public class FileBean implements Serializable {
     
    	public static final String TYPE_TEXT_HTML = "text/html";
     
    	/**
             * 
             */
    	private static final long serialVersionUID = 7564715649072780246L;
     
    	/**
             * Field content type
             */
    	private String contentType;
     
    	/**
             * Field containing local file name
             */
    	private String filename;
     
    	/**
             * @return the contentType
             */
    	public String getContentType() {
    		return contentType;
    	}
     
    	/**
             * @param contentType
             *            the contentType to set
             */
    	public void setContentType(String contentType) {
    		this.contentType = contentType;
    	}
     
    	/**
             * @return the filename
             */
    	public String getFilename() {
    		return filename;
    	}
     
    	/**
             * @param filename
             *            the filename to set
             */
    	public void setFilename(String filename) {
    		this.filename = filename;
    	}
     
    }
    Ensuite, voici une action class FileDownloadAction contenant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    /**
     * 
     */
    package package.actions;
     
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
     
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
     
    /**
     * @author jean.vacheron
     * 
     */
    public class AlertRulesDownloadAction extends FileDownloadAction {
     
    public ActionForward execute(ActionMapping mapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response)
    throws Exception {
     
    User user = (User) request.getSession().getAttribute("user");
     
    fileBean = ....;
    if (fileBean != null) {
    	return super.execute(mapping, form, request, response);
    }
     
    // return mapping.findForward("edit");
    return mapping.findForward("download");
    }
    }
    Enfin une action class FileDownloadAction contenant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    package package.actions;
     
    import java.io.File;
     
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
     
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionMapping;
    import org.apache.struts.actions.DownloadAction;
     
    import package.FileBean;
     
    public class FileDownloadAction extends DownloadAction {
     
    	protected FileBean fileBean;
     
    	protected StreamInfo getStreamInfo(ActionMapping mapping, ActionForm form,
    			HttpServletRequest request, HttpServletResponse response)
    			throws Exception {
     
    		String contentType = fileBean.getContentType();
     
    		File file = new File(fileBean.getFilename());
     
    		if (file.exists() && file.isFile()) {
     
    			response.setHeader("Content-disposition", 
    					"attachment; filename=" + file.getName());
     
    			return new FileStreamInfo(contentType, file);
    		}
    		return null;
     
    	}
     
    }
    reste ensuite à déclarer ton action struts-config et de l'appeler dans ton IHM.

    J'espère que cela t'aidera.

    @+

Discussions similaires

  1. Probleme pour ouvrir un fichier .mdf
    Par Invité1 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 21/06/2010, 15h41
  2. Probleme pour ouvrir les fichiers OpenOffice
    Par Dudul5 dans le forum SharePoint
    Réponses: 7
    Dernier message: 01/06/2007, 10h09
  3. [EasyPHP] probleme avec Firefox, ouvrir le fichier?
    Par PadaBen dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 22/09/2006, 14h42
  4. probleme pour ouvrir un fichier JPG
    Par kokatrix dans le forum Autres Logiciels
    Réponses: 7
    Dernier message: 04/05/2006, 16h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo