Questions soulevées:
Je travaille sur un petit site Web en tant que pratique, mais l'image frontale est chiffrée par Base64 et est transmise au back-end pour décodage. Mais il y a toujours eu des problèmes, s'il vous plaît donnez-moi des conseils
Public Static String Base64toimg (String Src) lève ioException {String UUID = UUID.RandomuUid (). ToString (); StringBuilder newPath = new StringBuilder (img_root_path); newpath.append (séparateur). Ajouter (UUID). APPEND (IMG_SUFFIX); if (src == null) {return null; } octet [] data = null; Base64.Decoder Decoder = Base64.GetDeccoder (); try (outputStream out = new FileOutputStream (newPath.ToString ())) {data = decoder.decode (src); out.write (données); return newpath.toString (); } catch (ioException e) {lancer une nouvelle ioException (); }}Java.lang.ILLEGALARgumentException: le tableau d'octet d'entrée a une mauvaise unité de fin de 4 octets
Ce qui précède sont des informations d'exception connexes. J'essaie de coller le code Base64 de la frontale dans le bloc-notes, puis d'essayer de le décoder moi-même, et le même problème est également vrai.
Solution:
IllégalargumentException: exception de paramètre illégal,
Essayez ceci, ça devrait être OK.
Permettez-moi de vous dire le processus:
A obtenu Stackoverflow, Debug. Enfin, j'ai trouvé que les données sont nuls. Allez, nous devons apprendre beaucoup.
La prochaine fois que je rencontrerai un débogage de problèmes, voyez quel code a un problème. En vous répondant, j'ai beaucoup appris.
Le point clé est ici: lancer une nouvelle ioException ();
Try (outputStream out = new FileOutputStream (newPath.ToString ())) {out.write (data); } catch (ioException e) {e.printStackTrace (); lancer un nouveau RuntimeException ("Ceci est l'exception lancée"); // lance un nouveau RuntimeException (E); } Public Static String Base64toimg (String Src) lève ioException {String UUID = UUID.RandomuUid (). ToString (); StringBuilder newPath = new StringBuilder ("xx"); newpath.append ("xx"). Ajouter (UUID). Ajouter ("xx"); if (src == null) {return null; } byte [] data = base64.getDecOder (). Decode (src); Try (outputStream out = new FileOutputStream (newPath.ToString ())) {out.write (data); } catch (ioException e) {e.printStackTrace (); } return newpath.toString (); }Ajoutez une autre ressource d'arrêt couramment utilisée:
Public Static String Base64toimg (String Src) lève ioException {String UUID = UUID.RandomuUid (). ToString (); StringBuilder newPath = new StringBuilder ("xx"); newpath.append ("xx"). Ajouter (UUID). Ajouter ("xx"); if (src == null) {return null; } octet [] data = null; OutputStream out = null; Base64.Decoder Decoder = Base64.GetDeccoder (); try {out = new FileOutputStream (newPath.ToString ()); data = decoder.decode (src); out.write (données); } catch (ioException e) {e.printStackTrace (); } enfin {if (out! = null) {out.close (); }} return newpath.toString (); }