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