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 :

Enregistrer un fichier uploader vers la bdd


Sujet :

Struts 1 Java

  1. #1
    Membre très actif Avatar de goute
    Homme Profil pro
    Développeur éclectique
    Inscrit en
    Novembre 2008
    Messages
    224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur éclectique
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2008
    Messages : 224
    Par défaut Enregistrer un fichier uploader vers la bdd
    Bonjour,

    Grâce a struts j'uploade un fichier que je récupère bien dans mon action.

    Voila ou j'en suis je le récupère bien avec toutes ces infos :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
                    FormFile myFile = formAS.getMoData();
    	        String contentType = myFile.getContentType();
    	        String fileName    = myFile.getFileName();
    	        int fileSize       = myFile.getFileSize();
    	        byte[] fileData    = myFile.getFileData();
    Mais maintenant je ne sais que faire pour l'enregistrer en base. Je genère moins même mes requetes.

    merci d'avance

  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Il faut utiliser un BLOB pour stocker les informations en DB.
    Tu utilises quelle base de données ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre très actif Avatar de goute
    Homme Profil pro
    Développeur éclectique
    Inscrit en
    Novembre 2008
    Messages
    224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur éclectique
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2008
    Messages : 224
    Par défaut
    Oracle, mais j'ai déjà mis en place ma table, avec le BLOB, ma question est comment je fais le lien entre : FormFile myFile = formAS.getMoData();
    et ma requête avec le "INSERT [...]"

  4. #4
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    As-tu essayé le setBinaryStream(...) de PreparedStatement ?
    Bon, avec Oracle c'est peut-être un peu différent, de mémoire, il y avait des choses particulières...
    Sinon, essaye ceci (trouvé sur le net)
    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
     
    /**
     * Set a blob into a OraclePreparedStatement.
     * @param st The statement instanceof OraclePreparedStatement
     * @param content The blob content
     * @param index The index of the blob in the sql expression.
     * @throws SQLException If an error occurs while setting blob.
     */
    public static void prepareStatementOracleBlob(PreparedStatement st, byte[] content, int index) throws SQLException{
        if (content == null) {
            st.setNull(index, Types.BINARY);
        } else if (st instanceof oracle.jdbc.OraclePreparedStatement) {
            oracle.jdbc.OraclePreparedStatement ost = (oracle.jdbc.OraclePreparedStatement) st;
            oracle.sql.BLOB blob = oracle.sql.BLOB.createTemporary(st
                    .getConnection(), false, oracle.sql.BLOB.DURATION_SESSION);
            blob.open(oracle.sql.BLOB.MODE_READWRITE);
            OutputStream out = blob.getBinaryOutputStream();
            try {
                out.write((byte[]) content);
                out.flush();
                out.close();
            } catch (IOException e) {
                throw new SQLException("Failed write to blob " + e.getMessage());
            }
            blob.close();
     
            ost.setBLOB(
                    index,
                    blob);
     
        } else
            throw new InvalidParameterException("The prepared statement is not an instance of oracle.jdbc.OraclePreparedStatement, it is a " + st.getClass());
    }
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Réponses: 2
    Dernier message: 05/06/2013, 18h47
  2. Réponses: 5
    Dernier message: 17/12/2007, 17h50
  3. Réponses: 8
    Dernier message: 26/04/2007, 10h31
  4. Réponses: 10
    Dernier message: 12/06/2006, 16h45
  5. [MySQL] upload : problème fichiers existants dans la bdd ?
    Par vincedjs dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 15/02/2006, 11h29

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