Вопросы подняты:
Я работаю на небольшом веб-сайте в качестве практики, но фронтальное изображение зашифровано BASE64 и передается в задний план для декодирования. Но всегда были проблемы, пожалуйста, дайте мне совет
public Static String Base64toImg (String src) бросает ioException {string uuid = uuid.randomuuid (). toString (); StringBuilder newpath = new StringBuilder (img_root_path); newpath.append (разделитель). Приложение (UUID). Приложение (img_suffix); if (src == null) {return null; } byte [] data = null; Base64.decoder декодер = base64.getDecoder (); try (outputStream out = new FileOutputStream (newPath.toString ())) {data = decoder.decode (src); out.write (data); вернуть newpath.toString (); } catch (ioException e) {бросить новое ioException (); }}java.lang.illegalargumentException: массив байтов имеет неправильный 4-байтовый финал
Вышеуказанное информация об исключении. Я пытаюсь вставить код BASE64 фронт-конца в Блокнот, а затем стараюсь декодировать его сам, и такая же проблема также верна.
Решение:
AllogalargumentException: незаконное исключение параметров,
Попробуйте это, все должно быть в порядке.
Позвольте мне сказать вам процесс:
Получил Stackoverflow, отладка. Наконец, я обнаружил, что данные являются нулевыми. Давай, нам нужно многому научиться.
В следующий раз, когда я встречусь с проблемой отладки, посмотрите, какой код имеет проблему. Отвечая вам, я многому научился.
Ключевой момент здесь: бросить новое ioexception ();
try (outputStream out = new FileOutputStream (newPath.toString ())) {out.write (data); } catch (ioException e) {e.printstackTrace (); бросить новое runtimeexception («Это исключение, брошенное»); // бросить новое runtimeexception (e); } public Static String Base64toImg (String src) бросает ioException {string uuid = uuid.randomuuid (). toString (); StringBuilder newpath = new StringBuilder ("xx"); newpath.append ("xx"). Приложение (UUID). append ("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 (); } вернуть newpath.toString (); }Добавьте еще один обычно используемый ресурс выключения:
public Static String Base64toImg (String src) бросает ioException {string uuid = uuid.randomuuid (). toString (); StringBuilder newpath = new StringBuilder ("xx"); newpath.append ("xx"). Приложение (UUID). append ("xx"); if (src == null) {return null; } byte [] data = null; OutputStream Out = null; Base64.decoder декодер = base64.getDecoder (); try {out = new FileOutputStream (newPath.toString ()); data = decoder.decode (src); out.write (data); } catch (ioException e) {e.printstackTrace (); } наконец {if (out! = null) {out.close (); }} вернуть newpath.tostring (); }