java中上传文件时,一直出现SyntaxError: Unexpected end of input。

这时候道友看看代码中是不是使用了inputfile.getBytes()方式获取文件的字节数据去把文件保存起来,这样做文件内容少可行,但是如果文件内容比较多,可能出现问题如下警告异常:

org.springframework.web.servlet.handler.AbstractHandlerExceptionResolver.logException(AbstractHandlerExceptionResolver.java:208) - Resolved [org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: org.apache.commons.io.IOUtils.readFully(Ljava/io/InputStream;[B)V]

然后代码就意外终止,出现SyntaxError: Unexpected end of input。

这里需要使用文件流multipartFile.getInputStream(),再用缓冲流读出到具体的文件中,而不是直接用multipartFile.getBytes()。

只不过我代码中用了multipartFile.getInputStream(),又出现了另外一个问题:java.io.IOException: Stream Closed。

我的部分代码如下图:

image

 代码中有对文件校验的处理,创建了Workbook wb = WorkbookFactory.create(is);

这段校验之后,获取到的流(上图的is)就会被代码关闭,下面在使用is进行读取文件信息保存时就会出现问题了。

如果道友不存在上图的校验,那应该也有其他的文件处理(还不是上传保存文件的处理),这个时候

这个时候我们需要给下方文件处理的地方单独一个新的文件流(上图中的is2),这样问题就会解决了。

 

posted on 2025-09-23 14:39  之之小侠  阅读(28)  评论(0)    收藏  举报