关于07版导入失败的问题
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | title=刚发的 java.io.FileNotFoundException: D:\tomcat\apache-tomcat- 8.5 . 37 \temp\upload_c14002d4_3754_4f23_bd87_59054ef26a33_00000003.tmp (系统找不到指定的文件。) at java.io.FileInputStream.open0(Native Method) at java.io.FileInputStream.open(FileInputStream.java: 195 ) at java.io.FileInputStream.<init>(FileInputStream.java: 138 ) content= null at org.apache.commons.fileupload.disk.DiskFileItem.getInputStream(DiskFileItem.java: 206 ) at com.imooc.service.WordService.imp(WordService.java: 45 ) at com.imooc.servlet.ImportWordServlet.doPost(ImportWordServlet.java: 31 ) at javax.servlet.http.HttpServlet.service(HttpServlet.java: 661 ) at javax.servlet.http.HttpServlet.service(HttpServlet.java: 742 ) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java: 231 ) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java: 166 ) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java: 52 ) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java: 193 ) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java: 166 ) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java: 198 ) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java: 96 ) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java: 493 ) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java: 140 ) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java: 81 ) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java: 650 ) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java: 87 ) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java: 342 ) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java: 800 ) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java: 66 ) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java: 806 ) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java: 1498 ) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java: 49 ) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java: 1142 ) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java: 617 ) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java: 61 ) at java.lang.Thread.run(Thread.java: 745 ) |
word为空,说什么文件未找到
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | package com.imooc.service; import com.imooc.dto.ImportWordParamDto; import com.imooc.dto.ImportWordResultDto; import org.apache.poi.hwpf.HWPFDocument; import org.apache.poi.poifs.filesystem.OfficeXmlFileException; import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.apache.poi.xwpf.usermodel.XWPFParagraph; import java.io.IOException; import java.util.List; public class WordService { public ImportWordResultDto imp(ImportWordParamDto dto) { //03版后缀为doc,07版为docx //返回给jsp的结果 ImportWordResultDto result = new ImportWordResultDto(); result.setTitle(dto.getTitle()); //创建03版对象 HWPFDocument doc = null ; try { //创建doc文档 doc = new HWPFDocument(dto.getWord().getInputStream()); result.setContent(doc.getDocumentText().replace( "\r" , "<br>" )); } catch (OfficeXmlFileException oe) { System.out.println( "这可能是一个07版的word" ); } catch (Exception e) { result.setMsg( "这可能不是一个word" ); } finally { if (doc != null ) { try { doc.close(); //如果是03版则返回,否则执行下面的代码 return result; } catch (IOException e) { e.printStackTrace(); } } } //创建07版word XWPFDocument docx = null ; try { docx = new XWPFDocument(dto.getWord().getInputStream()); //创建段落list List<XWPFParagraph> paragraphList = docx.getParagraphs(); //创建用于存放段落内容的字符串 StringBuilder content = new StringBuilder(); for ( int i = 0 ; i < paragraphList.size(); i++) { //如果不是第一段就换行 if (i != 0 ) { content.append( "<br>" ); } content.append(paragraphList.get(i).getText()); } result.setContent(content.toString()); } catch (IOException e) { e.printStackTrace(); } finally { if (docx != null ) { try { docx.close(); } catch (IOException e) { e.printStackTrace(); } } } return result; } } |
断点如下:
0
收起
正在回答 回答被采纳积分+1
2回答
从网页搭建入门Java Web2018版
- 参与学习 人
- 提交作业 1088 份
- 解答问题 10204 个
如果你有Java语言基础,又想以后从事Java Web开发,那么本路径是你的不二选择!本路径从网页搭建开始入手,通过大量案例来学习Java Web基础。定能助你完成Java Web小白的蜕变!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧