留言板

importation d'un fichier dans une classe java

Jérémy Quentel,修改在12 年前。

importation d'un fichier dans une classe java

New Member 帖子: 6 加入日期: 11-8-4 最近的帖子
Bonjour à tous,

Dans le cadre du développement d'un portail Liferay, j'ai besoin d'importer un fichier Excel pour y insérer des données et le mettre à disposition de l'utilisateur.
Mon souci arrive dès l'import :
 public void generateXLS(ActionRequest actionRequest, ActionResponse actionResponse) throws IOException, PortletException {
    try {
        // Ouverture du fichier xls
      FileInputStream fs = new FileInputStream("/modeleLigneCommande.xls");.
[...]
} catch (FileNotFoundException fnf) {
      actionResponse.setRenderParameter("url",
          "ERREUR :  fnf");
    }


J'ai testé énormément de possibilités, mais je ne vois pas comment récupérer un fichier.
Actuellement, le fichier .xls est situé à la racine de mon projet.

Si quelqu'un a des idées, je suis preneur !
Merci d'avance !!!
thumbnail
Leo Pratlong,修改在12 年前。

RE: importation d'un fichier dans une classe java

Expert 帖子: 363 加入日期: 10-7-6 最近的帖子
Bonjour,

quelle est l'erreur qui survient ?

Essayez de charger le fichier en définissant le path du fichier avec la commande suivante :
portletConfig.getPortletContext().getRealPath("lefichier.xls");


Si ça ne fonctionne pas, regardez la valeur que cette instruction renvoie et adaptez le paramètre en fonction.
Jérémy Quentel,修改在12 年前。

RE: importation d'un fichier dans une classe java

New Member 帖子: 6 加入日期: 11-8-4 最近的帖子
qu'est-ce que portletConfig ?
thumbnail
Leo Pratlong,修改在12 年前。

RE: importation d'un fichier dans une classe java

Expert 帖子: 363 加入日期: 10-7-6 最近的帖子
Jérémy Quentel:
qu'est-ce que portletConfig ?


Une interface contenant des méthodes relatives au contexte du portlet.
Vous développez un portlet, un plugin Ext, autre ?
Si c'est un portlet, avec quel framework ? Un portlet généré avec le SDK de Liferay ou un portlet "handcrafted" ?

Le PortletContext peut se récupérer autrement. Par exemple, en JSF, ce sera :
final FacesContext context = FacesContext.getCurrentInstance();
(PortletContext) context.getExternalContext().getContext();


Donc, tout dépend des technos que vous utilisez dans vos devs.
Jérémy Quentel,修改在12 年前。

RE: importation d'un fichier dans une classe java

New Member 帖子: 6 加入日期: 11-8-4 最近的帖子
Je développe un portlet avec le SDK Liferay.

Pourquoi est-ce que la ligne suivante ne fonctionne pas ?? sachant que si j'affiche actionRequest.getContextPath() + "fichier.xls" ça me donne bien le chemin vers mon fichier.xls.
 FileInputStream fs = new FileInputStream(actionRequest.getContextPath() + "fichier.xls");


Il y a des choses qui m'échappent...
thumbnail
Leo Pratlong,修改在12 年前。

RE: importation d'un fichier dans une classe java

Expert 帖子: 363 加入日期: 10-7-6 最近的帖子
Le chemin relatif ou absolu ? Le getRealPath renvoie le chemin absolu sur le serveur. En ce sens, il est plus facile à utiliser.
Vous avez quoi comme variable en entrée de votre méthode d'action (processAction, execute, ... ?).
Ne faut-il pas un "/" juste avant "fichier.xls" ?
Jérémy Quentel,修改在12 年前。

RE: importation d'un fichier dans une classe java

New Member 帖子: 6 加入日期: 11-8-4 最近的帖子
j'avais essayé avec le "/", même échec...

voici les deux paramètres de ma méthode.
ActionRequest actionRequest
ActionResponse actionResponse
Jérémy Quentel,修改在12 年前。

RE: importation d'un fichier dans une classe java

New Member 帖子: 6 加入日期: 11-8-4 最近的帖子
Et pour ce qui est du chemin relatif ou absolu... pour l'instant j'aimerais trouver une technique qui fonctionne, que ce soit relatif ou absolu... =)
thumbnail
Leo Pratlong,修改在12 年前。

RE: importation d'un fichier dans une classe java

Expert 帖子: 363 加入日期: 10-7-6 最近的帖子
Pour la récup du path du fichier, ça m'a l'air bon.

Si le chemin est bon, il s'agit peut-être d'un problème de droits du fichier.
Il faut que l'utilisateur qui lance le serveur ait les droits d'accès à ce fichier.

Edit :
our l'instant j'aimerais trouver une technique qui fonctionne, que ce soit relatif ou absolu... =)


Oui oui, j'ai bien compris. Mais je demandais si le chemin que renvoyait actionRequest.getContextPath() était relatif ou absolu ;).
Jérémy Quentel,修改在12 年前。

RE: importation d'un fichier dans une classe java

New Member 帖子: 6 加入日期: 11-8-4 最近的帖子
le chemin renvoyé est absolu : du style
 /nom_du_portlet
thumbnail
David H Nebinger,修改在12 年前。

RE: importation d'un fichier dans une classe java

Liferay Legend 帖子: 14916 加入日期: 06-9-2 最近的帖子
Jérémy Quentel:
Bonjour à tous,

Dans le cadre du développement d'un portail Liferay, j'ai besoin d'importer un fichier Excel pour y insérer des données et le mettre à disposition de l'utilisateur.
Mon souci arrive dès l'import :
 public void generateXLS(ActionRequest actionRequest, ActionResponse actionResponse) throws IOException, PortletException {
    try {
        // Ouverture du fichier xls
      FileInputStream fs = new FileInputStream("/modeleLigneCommande.xls");.
[...]
} catch (FileNotFoundException fnf) {
      actionResponse.setRenderParameter("url",
          "ERREUR :  fnf");
    }


J'ai testé énormément de possibilités, mais je ne vois pas comment récupérer un fichier.
Actuellement, le fichier .xls est situé à la racine de mon projet.

Si quelqu'un a des idées, je suis preneur !
Merci d'avance !!!


FileInputStream doesn't know anything about your current context.

You should be looking into the getResourceAsStream() method that knows how to return an input stream on the given named resource.