D'accord, fondamentalement, j'ai développé un système de téléchargement d'image simple. L'utilisateur sélectionne une image locale (à l'aide de l'API de fichier HTML5 / FileReader) et a la capacité de le recadrer avant de confirmer le résultat. P>
Le résultat final est visualisé dans une toile afin de l'envoyer au serveur que j'utilise Todatauf. Le serveur Backend est un serveur Nodejs qui doit ensuite apporter un appel de repos à un serveur Java qui créera un fichier image à partir des données et enregistrera-le sur le disque. P>
Les résultats de Todaaurl sont sous la forme: Données: image / png; base64, données codées. P>
Que aurais-je besoin sur le serveur Java pour convertir la chaîne en une représentation binaire appropriée? P>
4 Réponses :
Vous devez supprimer les données : image / png; base64, code> partie et Base 64 décode le reste. P>
Une fois que vous avez basé64-décodez la chaîne, vous aurez l'image binaire, sous la forme d'un fichier PNG. Voir Cette question à la question pour plus de détails sur la décoder une chaîne de base64 en octets. p>
import java.awt.image.BufferedImage; import java.io.ByteArrayInputStream; import java.io.File; import javax.imageio.ImageIO; import javax.xml.bind.DatatypeConverter; public class test { public static void main (String[] args){ try{ // remove data:image/png;base64, and then take rest sting String img64 = "64 base image data here"; byte[] decodedBytes = DatatypeConverter.parseBase64Binary(img64 ); BufferedImage bfi = ImageIO.read(new ByteArrayInputStream(decodedBytes)); File outputfile = new File("saved.png"); ImageIO.write(bfi , "png", outputfile); bfi.flush(); }catch(Exception e) { //Implement exception code } } }
Vous devez YourBase64String = YourBase64String.replace ('', '+'); p>
YourBase64String = YourBase64String.Substring (22); P>
Voir: Stackoverflow.com/questions/469695/Decode-Base64 -Data-in-JAV a
Dupliqué possible de Téléchargement de données d'image 'Canvas' sur le serveur