UPLOADen" />

jsp实现文件上传以及类似百度文库在线阅读

jsp实现文件上传以及类似百度文库在线阅读
jsp实现文件上传以及类似百度文库在线阅读

Jsp实现类似百度文库的在线阅读

1.首先下载FlashPaper2 并安装。如果你的系统是win7的话还需要下载一个补丁安装。

关于FlashPaper2 的操作请参考下面的网址。

https://www.360docs.net/doc/cc8065342.html,/view/7575c9114431b90d6c85c775.html

2.配置struts2的环境.将下面的架包拷贝到项目中。

3.编写上传文件界面。代码如下:

<%@ page language="java" contentType="text/html; charset=utf-8"

pageEncoding="utf-8"%>

<%@ taglib prefix="s" uri="/struts-tags"%>

UPLOAD

enctype="multipart/form-data">

4.编写上后后跳转的页面。

<%@ page language="java" contentType="text/html; charset=utf-8"

pageEncoding="utf-8"%>

<%@ taglib prefix="s" uri="/struts-tags"%>

suc

width="600" height="400">

value="C:\struts\swf\

value="imageFileName"/>.swf" />

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 https://www.360docs.net/doc/cc8065342.html,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) {

https://www.360docs.net/doc/cc8065342.html, = 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 https://www.360docs.net/doc/cc8065342.html,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.编写配置文件:

"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"

"https://www.360docs.net/doc/cc8065342.html,/dtds/struts-2.0.dtd">

8.

application/msword,application/vnd.ms-excel,application/pdf,application/vnd.ms-powerpoint

15728640

/suc.jsp

注意:

上传的文件不要太大,因为后台处理的时间较长,而页面跳转的时间比较短,如果文件太大的话后台没有处理完就已经跳转,在预览的时候找不到相应的文件。

运行结果:

相关主题
相关文档
最新文档