Ajouter un commentaire

apone

Et bien j'avais déjà essayé le : ./ress/products mais sans plus de succès.

Ce répertoire est effectivement à la racine de mon application web (au même niveau que l'index.jsp) et j'ai essayé un :

Quote:
getServletContext().getRealPath("/")

Voilà le répertoire que cela me retourne :
/Applications/jboss-4.0.5.GA/server/default/./tmp/deploy/tmp17555EBouffeCorp-exp.war/./ress/products/
(je suppose donc un répertoire temporaire qui est crée par JBoss à la compilation ???)

Donc lorsque je concatène avec mon répertoire puis le nom de mon fichier, je me retrouve avec :

Quote:
/Applications/jboss-4.0.5.GA/server/default/./tmp/deploy/tmp17555EBouffeCorp-exp.war/./ress/products/IMAGE_TEST.png

J'ai vérifié : le fichier est bien copié dans ce répertoire, avec toutes mes autres images de mon application. C'est donc un très net progrès : j'arrive à mettre tous les fichiers d'images au même endroit...

Le problème qui se pose maintenant c'est pour l'affichage. Voilà le bout de code qui gère l'affichage de mes produits :

try {
            //getting connection to the database
            Connection conn = DriverManager.getConnection("jdbc:hsqldb:file:/EBouffeCorp/db_files/db_file", "sa", "syspasswd");
            String query = "SELECT * FROM store_table WHERE category = 'entree' ORDER BY num_col";
            Statement st = conn.createStatement();
            ResultSet result = st.executeQuery(query);
            
            form += "<form name='formCommand' method='get' action='/EBouffeCorp/Command'>";
            
            String imgPath = getServletContext().getRealPath("/") + "./ress/products/";
            
            //displays all the products stored in this category
            while(result.next()){
                form += "<tr>";
                form += "<td align='center' bgcolor='#CCCCCC'><img src='" + imgPath + result.getString(6) + "' /></td>";
                form += "<td align='center' bgcolor='#CCCCCC'>" + result.getInt(1) + "</td>";
                form += "<td align='center' bgcolor='#CCCCCC'>" + result.getString(2) + "</td>";
                form += "<td align='center' bgcolor='#CCCCCC'>" + result.getInt(3) + "</td>";
                form += "<td align='center' bgcolor='#CCCCCC'>" + result.getString(4) + "</td>";
                form += "<td align='center' bgcolor='#CCCCCC'>" + textfield(Integer.toString(result.getInt(1))) + "</td>";
               
                //we add all products references in the vector
                entree.addElement(new Integer(result.getInt(1)));
                
                form += "</tr>";
            }
            
            //closing connection
            st.executeQuery("SHUTDOWN");
            result.close();
            st.close();
            conn.close();
        }
        catch (Exception e) {
            form += "exception";
        }

mais image toujours non affichée. Un clic droit sur l'image absente et voilà le path où il la cherche :
http://localhost:8080/Applications/jboss-4.0.5.GA/server/default/tmp/deploy/tmp17563EBouffeCorp-exp.war/ress/products/35.jpg
ce qui est presque correct... à un http://localhost:8080 près ...

Mais j'ai un peu cherché du côté du stockage de l'image directement dans la base.. Je suis peut être sur une piste mais c'est pas encore ça. Je vais continuer de chercher vers cet axe, ça me paraît moins laborieux et surtout moins crade que des liens vers le système de fichiers...

... affaire à suivre !

Filtered HTML

Plain text

CAPTCHA
Cette question permet de vérifier que vous n'êtes pas un robot spammeur :-)
  SSS   U   U  Y   Y  Y   Y  L    
S U U Y Y Y Y L
SSS U U Y Y L
S U U Y Y L
SSSS UUU Y Y LLLL