类似百度文库在线阅读
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
类似百度文库的在线阅读
1.首先下载FlashPaper2 并安装。
如果你的系统是win7的话还需要下载一个补丁安装。
关于FlashPaper2 的操作请参考下面的网址。
/view/7575c9114431b90d6c85c775.html
2.配置struts2的环境.将下面的架包拷贝到项目中。
3.编写上传文件界面。
代码如下:
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>UPLOAD</title>
</head>
<script type="text/javascript" src="js/wait.js"></script>
<body>
<s:form action="upload" method="post"
enctype="multipart/form-data">
<s:file name="file" label="file name:"></s:file>
<s:textfield name="name" label="new name:"></s:textfield> <s:submit label="ok" onClick="javascript:wait()" />
</s:form>
</body>
</html>
4.编写上后后跳转的页面。
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>suc</title>
</head>
<body>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
width="600" height="400">
<param name="movie"
value="C:\struts\swf\<s:property
value="imageFileName"/>.swf" />
<param name="quality" value="high" />
</object>
</body>
</html>
5.编写Action类。
package zzuli.bysj.wh.action;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Date;
import m.util.FlashPaper;
import com.opensymphony.xwork2.ActionSupport;
public class FileUploadAction extends ActionSupport {
p rivate static final long serialVersionUID = 572146812454l ;
p rivate static final int BUFFER_SIZE = 15728640 ;
p rivate File file;
p rivate String fileContentType;
p rivate String fileFileName;
p rivate boolean flag;
p ublic boolean isFlag() {
return flag;
}
p ublic void setFlag(boolean flag) {
this.flag = flag;
}
p ublic String getFileFileName() {
return fileFileName;
}
p ublic void setFileFileName(String fileFileName) { this.fileFileName = fileFileName;
}
p rivate String imageFileName;
p rivate String name;
p ublic File getFile() {
return file;
}
p ublic void setFile(File file) {
this.file = file;
}
p ublic String getImageFileName() {
return imageFileName;
}
p ublic void setImageFileName(String imageFileName) { this.imageFileName = imageFileName;
}
p ublic String getName() {
return name;
}
p ublic void setName(String name) {
= name;
}
p ublic String getFileContentType() {
return fileContentType;
}
p ublic void setFileContentType(String fileContentType) { if(fileContentType.contains("msword")){
this.fileContentType = ".doc";
}else if(fileContentType.contains("excel")){
this.fileContentType = ".xls";
}else if(fileContentType.contains("pdf")){
this.fileContentType = ".pdf";
}else if(fileContentType.contains("powerpoint")){ this.fileContentType = ".ppt";
}else{
this.fileContentType = ".doc";
}
}
p rivate static void copyFile(File src,File dir){ try{
InputStream input = null;
OutputStream output = null;
try{
input = new BufferedInputStream(new
FileInputStream(src),BUFFER_SIZE);
output = new BufferedOutputStream(new
FileOutputStream(dir),BUFFER_SIZE);
byte [] buffer = new byte [BUFFER_SIZE];
while(input.read(buffer)>0){
output.write(buffer);
}
}catch(Exception e){
e.printStackTrace();
}finally{
if(null != input){
input.close();
}
if(null !=output ){
output.close();
}
}
}catch(Exception e){
e.printStackTrace();
}
}
p ublic String execute(){
imageFileName = String.valueOf(new Date().getTime())+name;
// File dirFile = new
File(ServletActionContext.getServletContext().getRealPath("/UploadImages") +"/"+imageFileName);
File dirFile = new
File("C:\\struts\\document\\"+imageFileName+this.getFileContentType());
copyFile(file,dirFile);
int fileSize = 0;
try {
fileSize = new FileInputStream(file).available()/1024;
} catch (Exception e) {
e.printStackTrace();
}
flag =
FlashPaper.converter(imageFileName,imageFileName+this.getFileContentType() ,fileSize);
System.out.println("%%%%%%%%%%%%%%%%%"+flag);
return "suc";
}
}
6.编写转换方法:
package m.util;
public class FlashPaper extends Thread {
public static void main(String args[]){
converter("1301291936853trhkt","1301291936853trhkt.pdf",100);
}
public static boolean converter(String swfName,String documentName,int fileSize){
int sleeptime = 0;
boolean st_return = true;
Runtime pro = Runtime.getRuntime();
try {
String converter="C:\\Program Files\\Macromedia\\FlashPaper 2\\FlashPrinter.exe -o C:\\struts\\swf\\"+swfName+".swf
C:\\struts\\document\\"+documentName;
pro.exec(converter);
Thread.sleep(sleeptime);
} catch (Exception e) {
System.out.println("执行失败");
e.printStackTrace();
}
return st_return;
}
}
7.编写配置文件:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"/dtds/struts-2.0.dtd">
<struts>
<package name ="fileUploadDemo" extends ="struts-default" >
<action name ="upload" class ="zzuli.bysj.wh.action.FileUploadAction" > <interceptor-ref name ="fileUpload" >
8. <param name ="allowedTypes" >
application/msword,application/vnd.ms-excel,application/pdf,application/vnd.ms-powerpoint
</param >
<param name ="maximumSize">15728640</param>
</interceptor-ref >
<interceptor-ref name ="fileUploadStack" />
<result name ="suc">/suc.jsp </result >
</action >
</package >
</struts>
注意:
上传的文件不要太大,因为后台处理的时间较长,而页面跳转的时间比较短,如果文件太大的话后台没有处理完就已经跳转,在预览的时候找不到相应的文件。
运行结果:。