Comment télécharger encodé en base64 image vers le serveur à l'aide de printemps
Je suis en train d'écrire un webservice à l'aide de printemps.
Ce service prend la encodées en base64 image comme un paramètre de Chaîne.
Je veux décoder cette Chaîne en image et upload sur le serveur.
@RequestMapping(value="/uploadImage",method = RequestMethod.POST)
public @ResponseBody String uploadImage(@RequestParam("encodedImage") String encodedImage)
{
byte[] imageByte= Base64.decodeBase64(encodedImage);
return null;
}
OriginalL'auteur srihari | 2014-06-14
Vous devez vous connecter pour publier un commentaire.
Le code ci-dessous est utilisé pour décoder la chaîne qui est codé à l'aide de la base de 64 et utilisé pour charger l'image dans le serveur.
Cela fonctionne très bien pour moi..
OriginalL'auteur srihari
Utilisation de Java
Base64.Décodeur
pour décoder la chaîne en un tableau d'octets.Si ce n'est pas disponible dans votre version de Java, vous pouvez utiliser la même fonctionnalité de la Apache Commons Codec projet.
Donc, votre problème est résolu?
pas de. j'ai décodé de la chaîne en byte[] seulement, mais je veux le changer de fichier.
Eh bien, vous avez juste à écrire le tableau d'octets dans un fichier, par exemple en utilisant un FileWriter.
FileWriter est pour les fichiers texte. FileOutputStream serait plus approprié.
OriginalL'auteur Robby Cornelissen
Si vous êtes à l'aide de Printemps, vous pourriez envisager d'utiliser un HttpMessageConverter pour convertir votre image à un BufferedImage avant qu'il n'atteigne vos contrôleurs. Je ne pouvais pas trouver un déjà fait un au printemps convertisseurs (peut-être que j'ai raté ça?). En tout cas c'est quelque chose que je viens d'écrire maintenant. Vous pouvez être en mesure de l'améliorer.
Puis dans votre contrôleur, écrire quelque chose comme ceci (ou, de préférence, passer le BufferedImage à une sorte de service). Notez que la logique de conversion de base64 pour les BufferedImage est réutilisable et caché dans le HttpMessageConverter.
Si vous utilisez du printemps java configuration, configuration de HttpMessageConverters ressemble à quelque chose comme ceci
Si vous le souhaitez, vous pouvez éviter d'utiliser apache commons si vous n'en avez pas besoin et juste aller avec le nouveau java8 java.util.base64 classe. Le GsonHttpMessageConverter (pour la conversion de Json à mon domaine d'objets) n'est pas utilisé pour les images, de sorte que vous pouvez tirer que hors de la config si des images est tout ce que vous faites.
OriginalL'auteur John Deverall
Suivante est de travailler pour moi:
OriginalL'auteur ArunDhwaj IIITH