Bonjour à tous,
Je suis en train de développer une application java permettant l'upload d'image sur une base sql server. (J'envoie le contenu de l'image, et pas le lien du fichier). L'image est enregistrée d'un un champs nText
l'appli utilise la même bdd que deux autres appli en php et c#
Je lis l'image avec
Si je recréé une image a partir du résultat de la lecture, ça marche(J'ai la même chose dans mes deux fichiers). Idem quand je l'enregistre sur la bdd et la récupère pour créer un fichier.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 File file = new File("C:\\image.jpg"); int ch; StringBuffer strContent = new StringBuffer(""); FileInputStream fin = null; fin = new FileInputStream(file); while( (ch = fin.read()) != -1) strContent.append((char)ch); fin.close(); }
Par contre, si j'affiche l'image depuis une autre appli, elle s'affiche pas correctement. (les caractères spéciaux doivent être remplacé...)
Idem lorsque je récupère une image uploadée depuis l'appli c#. Je me retrouve avec des ? à la place de certains caractères.
Voici le code pour l'upload
Je suppose que c'est un problème d'encodage, mais je n'arrive pas à le résoudre, j'ai essayer en rajoutant un charset dans la connexion, ou en modifiant l'encodage du fichier java, mais sans résultats...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 String url = "jdbc:sqlserver://localhost:1433;databaseName=XX;user=XX;password=XX;"; PreparedStatement prepa = con.prepareStatement("Update Visiteurs set Photo=?"); prepa.setString(1,strContent.toString()); prepa.executeUpdate();
ma base est en French_CI_AS
Merci
Partager