Yanxiuupload.docx

上传人:b****7 文档编号:10373677 上传时间:2023-02-10 格式:DOCX 页数:19 大小:75.31KB
下载 相关 举报
Yanxiuupload.docx_第1页
第1页 / 共19页
Yanxiuupload.docx_第2页
第2页 / 共19页
Yanxiuupload.docx_第3页
第3页 / 共19页
Yanxiuupload.docx_第4页
第4页 / 共19页
Yanxiuupload.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

Yanxiuupload.docx

《Yanxiuupload.docx》由会员分享,可在线阅读,更多相关《Yanxiuupload.docx(19页珍藏版)》请在冰豆网上搜索。

Yanxiuupload.docx

Yanxiuupload

{Yanxiu_upload}

模块设计分析报告

文件状态:

[√]草稿

[]正式发布

[]正在修改

文件标识:

SRT-YXSQ-Upload

当前版本:

1.0

作者:

申俊泽

完成日期:

2012-3-14

尚睿通-研训平台技术组

版本历史

版本/状态

作者

参与者

起止日期

备注

1.0

申俊泽

2012-3-14---2012-3-14

主要分析现有代码和功能

注:

正文部分,只有最后一次变更的内容会以橙色加粗显示。

附录部分,只有最后一次变更的内容会以蓝色显示。

(文字较多橙色刺眼)

0.文档介绍

0.1文档目的

编写研训平台Yanxiu_upload模块分析报告的目的是给出当前该模块内部流程的描述,便于解决当前出现的bug,以及模块的维护和二期开发。

0.2文档范围

本文档适用于当前优化阶段。

0.3读者对象

本文档预期读者对象为本项目组的开发人员,也可用于日后维护人员查询。

0.4参考文献

本项目组相关代码。

0.5术语与缩写解释

缩写、术语

解释

Yanxiu_upload

研修社区的上传模块

1.命名规则

(1)本模块内所有实体类均使用英文名称;

(2)所有工具类以Util结尾;

(3)所有action类以Action结尾;

(4)所有接口以I开始;(目前由于其他项目大量使用online模块的功能暂时不进行此项重构,接口没有以I开始)

(5)所有实现类以Impl结尾;

(6)所有操作底层数据库的类以Dao结尾;

2.模块Yanxiu_Upload的功能简介

Yanxiu_upload模块为yanxiu社区提供文件上传功能,包括头像的上传和资源贴子的上传。

2.1模块提供的功能

1.上传以下格式的文档:

2.个人中心上传以下图片格式的头像:

jpg、jpeg、bmp、png

3.将上传的文档转化为swf格式。

4.提供附件多文件上传功能

注:

1.所有上传的原始文档文件均储存在56的/opt/yanxiu/www/doc目录下

2.转换后的文档文件均储存在56的/opt/yanxiu/www/swf目录下

3.所有上传的附件均储存在56的/opt/yanxiu/www/attachments目录下

4.所有上传的头像均储存在56的/opt/yanxiu/www/pic目录下

5.上传文档的存储方式以原文件名的md5值,取前6位,每两位做一层目录,总计三层。

后26位加上原文件的后缀组成新的存储名称。

Swf文件后缀与原文件不同,存储的根目录不同,其他结构均相同。

6.原文件和转换后的swf文件对应关系以及md5值均存储在34-user-filename中。

2.2模块可以扩展的功能

3.模块Yanxiu_online内部分析

此部分以包为结构单元进行分析。

只分析比较复杂的类,简单的类只在列表中列出。

每个类中的get和set方法不单独列举。

3.1src目录:

action包

包名

类名

说明

com.yanxiu.upload.action

UploadAction

处理RPC请求的Action类

3.1.1UploadAction类

说明:

处理所有Upload请求

1.变量分析

变量名

变量类型

说明

备注

SWF_URL

FinalString

swfUrl返回的json变量名称

SOURCE_URL

FinalString

sourceUrl返回的json变量名称

serialVersionUID

Finallong

序列化

MAXWIDTH

Finalint

设定的最大宽度

MAXHEIGHT

Finalint

设定的最大高度

newUpload

File

处理头像上传的file对象

hid

Long

生成的头像id

headId

url

String

头像的存储url

height

Int

头像的高

width

Int

头像的宽

top

Int

裁剪头像时,高度偏移

left

Int

裁剪头像时,宽度偏移

rate

Double

缩放比例

uid

Long

头像所属的用户id

userId

passport

String

社区passport

add

String

上传文件的地址

2.方法分析

方法名

输入

输出

说明

备注

getURLs

Json数据

返回json数据,包括文件的下载地址和swf地址以及转换后的页数

swfUrl、sourceUrl和pageNum

getSourceURL

Json数据

返回json数据---文件的下载地址

sourceUrl

getSWFURL

Json数据

返回json数据---文件的swf地址

swfUrl

getMd5

Json数据

返回json数据---文件的Md5值

modifyHeadImg

String

上传图片并且返回上船后的存储地址

completeHeadImg

Json数据

完成图片上传,根据用户选择的位置和尺寸,最终生成三个头像图片

ret:

false---上传失败

true---上传成功

uri:

middlepic的地址

3.2src目录:

beans包

包名

类名

说明

com.yanxiu.upload.beans

ProgressInfo

监控数据的bean

3.2.1ProgressInfo类

1.变量分析

变量名

变量类型

说明

备注

totalSize

Long

上传文件的总大小

bytesRead

Long

已经读取的字节

fileIndex

Int

传输的文件index

startTime

Long

传输的起始时间

deltaTime

Long

终止传输的时间

uploadedFiles

String

已经上传的文件

fileSize

Long

单个文件的大小

isInProgress

boolean

是否正在传输

isCompleted

boolean

传输是否结束

curFileName

String

当前传输的文件名称

errorMsg

String

错误信息

fileAdd

String

增加的文件名称

3.3src目录:

convertServer包

包名

类名

说明

com.yanxiu.upload.convertServer

ConvertManager

调用文档转换的控制类

DocConvert

文档转换的具体执行类

FileUploadKey

文档上传sqs队列中的key

FileUploadSqsServer

维护文档转换的队列

HttpSqs

配置sqs队列的参数

OfficeManagement

获取文档转换服务

SaveByMd5

将文档以Md5名称散列存储

3.3.1ConvertManager类

1.变量分析

变量名

变量类型

说明

备注

add

Long

上传文件的总大小

filename

Long

已经读取的字节

temp

Int

传输的文件index

2.方法分析

方法名

输入

输出

说明

备注

Convert

boolean

控制文档转换流程

根据文件后缀判断是否需要先转化为pdf

3.3.2DocConvert类

1.变量分析

变量名

变量类型

说明

备注

officeManager

OfficeManager

获取文档处理的句柄

converter

OfficeDocumentConverter

获取执行转化pdf的句柄

2.方法分析

方法名

输入

输出

说明

备注

docConvertToPDF

sourceAdd

String

将文档转化为pdf

返回转化后的pdf地址

pdfConvertToSwc

inputFile

temp

extName

Long

将pdf转化为swf

返回转化时间

3.3.3FileUploadKey类

1.变量分析

方法名

输入

输出

说明

备注

getUndoFileNum

String

SYSTEM_UPLOAD_UNDONUM

返回sqs中存储name

3.3.4FileUploadSqsServer类

1.方法分析

方法名

输入

输出

说明

备注

pushInSqs

tryNum

uid

add

Boolean

将带转换文档放入队列中等待处理

返回操作的结果

3.3.5OfficeManagement类

1.变量分析

变量名

变量类型

说明

备注

OM

OfficeManagemengt

文档处理的句柄

configuration

DefaultOfficeManagerConfiguration

转换默认配置

officeManager

OfficeManager

当前类的实例

2.方法分析

方法名

输入

输出

说明

备注

OfficeManagement

String

根据配置信息初始化officeManager服务

构造器

getOfficeManagement

OfficeManagement

返回officeManagement句柄

getOfficeManager

OfficeManager

返回officeManager

3.3.6SaveByMd5类

1.变量分析

变量名

变量类型

说明

备注

fileName

String

文件名

2.方法分析

方法名

输入

输出

说明

备注

getMd5

String

返回fileName的MD5结果

isExists

md5hex

downloadRoot

String

根据获取的md5文件名和存储位置存储文件

文件存在---Exits

不存在---存储地址

3.4src目录:

daemonThread包

包名

类名

说明

com.yanxiu.online.daemonThread

FileConvertThread

文件转换的静态线程

3.4.1FileConvertThread类

1.变量分析

变量名

变量类型

说明

备注

fileUploadSqsServer

FileUploadSqsServer

文件转化待处理队列

2.方法分析

方法名

输入

输出

说明

备注

Run

执行checkFileQueue

checkFileQueue

循环遍历带转化文件队列,将文件转化为swf

文件存在---Exits

不存在---存储地址

3.5src目录:

database包

该包只包含ConnectionToDatabase类,该类用于JDBC连接。

(只处理一张表,所以没有使用hibernate)

3.6src目录:

servlet包

包名

类名

说明

com.yanxiu.online.servlet

FileUploadServlet

处理文档转换的servlet

3.6.1FileUploadServlet类

1.变量分析

变量名

变量类型

说明

备注

PROGRESS_INFO

finalString

fileUploadSqsServer

FileUploadSqsServer

fileName

String

MAX_LENGTH

finallong

20MB

File_MAX_LENGTH

finallong

20MB

fcThread

FileConvertThread

2.方法分析

方法名

输入

输出

说明

备注

doGet

调用doPost

doPost

文件上传

先判断是否是附件上传(无进度条,多文件),否则调用doUpload处理文档上传

doUpload

处理文档上传

3.7src目录:

ueditor包

包名

类名

说明

com.yanxiu.online.server.ueditor

UeditorUploadServlet

处理回帖信息

3.7.1UeditorUploadServlet类

1.变量分析

变量名

变量类型

说明

备注

File_MAX_LENGTH

finallong

3MB

2.方法分析

方法名

输入

输出

说明

备注

doGet

调用doPost

doPost

文件上传

调用doUpload处理回帖

doUpload

处理回帖

3.8src目录:

util包

包名

类名

说明

com.yanxiu.online.util

Access2db

提供与数据库的相关操作

Contants

定义了upload中的常量

GalleryConstants

根据配置文件设定图片上传常量

IdGenerator

获取唯一的头像id

KeyGenter

获取缓存中的头像key

PicFileUtil

提供图片处理辅助方法

RestServer

搜索的静态线程

UploadListener

上传文档的监听类

UploadMoniter

上传文档的监听控制类

UploadUtil

获取返回地址的辅助类

3.8.1Access2db类

1.方法分析

方法名

输入

输出

说明

备注

getAccess

Connection

获取数据库连接

closeAccess

Con

stmt

boolean

关闭连接

getUidByPassport

passport

long

获取用户id

updateHeadInfo

Uid

hid

boolean

更新用户头像

3.8.2PicFileUtil类

1.变量分析

变量名

变量类型

说明

备注

BIG_HEAD_IMG

finallong

80

大头像尺寸

MIDDEL_HEAD_IMG

finallong

60

中头像尺寸

SMALL_HEAD_IMG

finallong

50

小头像尺寸

2.方法分析

方法名

输入

输出

说明

备注

getDomain

pid

String

获取club_domain

getPicDir

String

获取头像上传路径

genPicUrl

Id

Ext

size

String

获取头像保存路径

根目录不同

genPicPath

Id

Ext

size

List

获取头像保存路径

根目录不同

getHeadPath

Hid

size

String

根据头像尺寸返回头像地址

getFileExt

fileName

String

返回文件后缀

getPicId

filename

String

获取图片id

removeSame

arry

String[]

删除重复

不清楚

getPicUrlInfo

picId

String

根据id解析保存路径,并将其返回

creatEmptyFile

fileFulName

boolean

创建目录结构

GetNewWidth

Width

Height

orderW

orderH

Int[]

根据传入的宽高信息,计算出新的图片尺寸和类型

unzip

zipFileName

outputDirectory

List

解压文件到指定目录

imgMagic

Image

maxWidth

maxHeight

oldPicPath

newPicPath

boolean

转存图片

DelExfi

Image

oldPicPath

boolean

删除制定文件

getHead3Size

newHead

newBig

newMiddle

newSmall

width

height

rate

left

top

boolean

根据参数生成三种头像图片

getUeditorPicDir

String

获取editor的地址

getueditorDomain

pid

String

获取ueditor_domain

配置文件中获取

getAttachmentDir

String

获取attachment_Dir

配置文件中获取

getDocDir

String

获取doc_Dir

配置文件中获取

getSwfDir

String

获取swf_Dir

配置文件中获取

3.7.1UploadUtil类

1.方法分析

方法名

输入

输出

说明

备注

getSourceURL

返回文件的下载URL

getSWFURL

返回swf格式的URL

getMd5

返回文件的md5结果

4模块Yanxiu_upload数据库说明

目前,本模块只存储上传文档的相关信息。

Yanxiu_online数据库表汇总

数据库名

表名

说明

User

filename

记录每个文件的相关信息

4.1表filename

表名

字段名

类型

说明

filename

id

Int

自增主键

oldname

String

文件名

md5name

String

Md5处理后的文件名

pagenum

int

转化为swf之后的页数

A.附录

1部分功能流程图

1.1文档上传流程图

1.2文档转换流程图

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1