思想:
- 获得word的绝对路径
- 使用FileInputStream获得字节流
- 使用poi中WordExtractor将字节流转回原字符,存入一个字符串。
- 将字符串中的换行符 \n 替换成html中的换行符<br>
- 使用session将字符串传到客户端。
- 客户端使用javascript中document.write()输出字符串。
下面是代码:
HwpTest.java
public class HwpTest {
public String testReadByExtractor(String str) throws Exception {
// InputStream is = new FileInputStream("C:\\Users\\Administrator\\Desktop\\心理学网络会议文档.doc");
InputStream is = new FileInputStream(str);
WordExtractor extractor = new WordExtractor(is);
String rs=extractor.getText()+"\n"+extractor.getTextFromPieces();
this.closeStream(is);
return rs;
}
private void closeStream(InputStream is) {
if (is != null) {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
paperView.jsp
<body>
<%Map sess=ActionContext.getContext().getSession(); %>
<input type="hidden" id=sess name="hiddenField" value="<%=ActionContext.getContext().getSession().get("paper") %>">
<script type="text/javascript">
document.write(sess.value);
</script>
</body>
PaperCheckAction.java
public class PaperCheckAction extends ActionSupport {
private HttpServletRequest request=ServletActionContext.getRequest();
private Map session=ActionContext.getContext().getSession();
public String check() throws Exception {
String fileName=request.getParameter("fileName");
// 获得项目的绝对路径
String filePath=request.getSession().getServletContext().getRealPath("")+"\\upfile\\"+fileName;
// String filePath="D:\\tomcat\\webapps\\PCWeb\\upfile\\"+str[0];
HwpTest words=new HwpTest();
String paper=words.testReadByExtractor(filePath);
String paper1=paper.replace("\n", "<br>");
session.put("paper", paper1);
return SUCCESS;
}
}