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。
我的部分代码如下图:

代码中有对文件校验的处理,创建了Workbook wb = WorkbookFactory.create(is);
这段校验之后,获取到的流(上图的is)就会被代码关闭,下面在使用is进行读取文件信息保存时就会出现问题了。
如果道友不存在上图的校验,那应该也有其他的文件处理(还不是上传保存文件的处理),这个时候
这个时候我们需要给下方文件处理的地方单独一个新的文件流(上图中的is2),这样问题就会解决了。
浙公网安备 33010602011771号