嗨我有这个编码为Base64的String str:
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
RU5ErkJggg==
以下是我将其转换为byte[]
的方式:
byte[] imageByte = Base64.decode(str);
以下是我想将它保存在我的机器上的方法:
BufferedImage image = null;
String path = EVENT_FOLDER + name + "." + extension;
try
{
image = ImageIO.read(new ByteArrayInputStream(imageByte));
ImageIO.write(image, extension, new File(path));
}
catch (IOException e)
{
e.printStackTrace();
}
我得到了这个例外:
java.lang.IndexOutOfBoundsException: pos < flushedPos!
at javax.imageio.stream.ImageInputStreamImpl.seek(ImageInputStreamImpl.java:768)
at javax.imageio.stream.ImageInputStreamImpl.skipBytes(ImageInputStreamImpl.java:738)
at com.sun.imageio.plugins.png.PNGImageReader.readMetadata(PNGImageReader.java:676)
at com.sun.imageio.plugins.png.PNGImageReader.readImage(PNGImageReader.java:1229)
at com.sun.imageio.plugins.png.PNGImageReader.read(PNGImageReader.java:1577)
at javax.imageio.ImageIO.read(ImageIO.java:1448)
at javax.imageio.ImageIO.read(ImageIO.java:1352)
at com.evappserver.util.ImageUploader.uploadEventImage(ImageUploader.java:38)
at com.evappserver.logiclayer.NewEventLogic.createNewEvent(NewEventLogic.java:64)
at com.evappserver.servlets.NewEventServlet.doGet(NewEventServlet.java:39)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:722)
注意:以下是在线转换器的一些链接:link link link
这个错误说的是什么?我如何解决它?谢谢!
答案 0 :(得分:1)
我打赌问题是你使用的工具实际上并没有转换原始文件,而是编码图像数据本身。这意味着输入不适合ImageIO
。