2 votes

Glassfish : sert les fichiers téléchargés par les utilisateurs (Alternate docroot relative Webapp)

Dans ma webapp, des utilisateurs téléchargent des fichiers (images et documents) qui doivent ensuite être accessibles à d'autres utilisateurs.

Voici le fichier glassfish-web.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE glassfish-web-app PUBLIC "-//GlassFish.org//DTD 
    GlassFish Application Server 3.1 Servlet 3.0//EN" 
    "http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd">
<glassfish-web-app>
    <parameter-encoding default-charset="UTF-8" />
<property name="alternatedocroot_1"
         value="from=/uploads/* dir=C:/glassfish31/glassfish/domains/domain1" />
</glassfish-web-app>

Cela fonctionne, mais je veux déployer l'application sur d'autres systèmes (linux/Windows).

Q1 : Existe-t-il un moyen d'éviter d'écrire le chemin complet ici, ou au moins de le rendre portable sous linux/Windows ?

Q2 : Lorsque je télécharge les fichiers, j'utilise des primefaces et je stocke le fichier sur le disque en utilisant une chaîne codée en dur qui pointe vers le même répertoire que ci-dessus.

public static final String ALTERNATE_DOC_ROOT_1 = "C:/glassfish31/glassfish/domains/domain1/uploads";

Existe-t-il une API qui permette à mon code de rechercher le chemin absolu de l'autre docroot afin de pouvoir y stocker des fichiers ?

0voto

Aksel Willgert Points 3791

Q1 : en remplaçant simplement le chemin absolu par un point, on obtient par défaut le chemin :

C:/glassfish31/glassfish/domains/domain1

<property name="alternatedocroot_1"
     value="from=/uploads/* dir=." />

Je suppose donc que cela fonctionnera aussi sous linux, mais je n'ai pas testé.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X