标签:
采用单文档多视图结构,即目前RMS等客户端界面框架。提供以下视图:
该视图提供元素:开始,暂停,删除
该视图提供元素:清空
该视图提供元素:清空
为了增加传输可靠性,支持断点续传等功能,将采用客户端与服务器之间逐包确认的方式,客户端记录下当前各上传中或下载中文件的读写位置,便于再次发送或请求。
客户端和服务器之间交互的数据格式定义:
message HpSvrPathBean{
optional bytes ORGID = 1;
optional bytes SMCLASS = 2;
optional bytes BGCLASS = 3;
optional bytes BIZID = 4;
}
message HpSvrListBean{
optional int32 FILESIZE =1; //文件大小
optional bytes CRDID =2; //业务流水
optional bytes FILENAME =3; //文件名称
optional bytes CREATEUSER =4; //文件上传人
optional bytes CREATEDATE =5; //文件上传时间
}
message HpFileBean{
optional bytes FILEID = 1; // 文件ID,唯一标示一个文件,客户端生成。
optional HpSvrPathBean SVRPATH = 2; // 目的文件夹目录
optional bytes LOCALPATH = 3; // 本地文件目录
optional uint64 FILESIZE = 4; // 文件大小
optional uint64 RDPTR = 5 [default = 0]; // 文件的读开始指针位置
optional uint64 WTPTR = 6 [default = 0]; // 文件写开始指针位置
optional uint64 DONESIZE = 7; // 已完成大小
optional uint32 DOINGSIZE = 8[default = 1024]; // 本次操作大小
optional bytes BEGINTIME = 9; // 开始时间
optional bytes ENDTIME = 10; // 结束时间
optional uint32 STATE = 11[default = 0]; // 当前状态 0 操作中,1 完成,-1 暂停
optional bytes USERID = 12; // 操作用户账户
optional bytes CLIENTIP = 13; // 客户端IP
repeated int32 FILEDATA = 14; // 文件内容
optional uint32 NEEDREFRESH = 15[default = 0]; // 上传完成后是否需要刷新已上传列表 1需要,0不需要
optional uint32 NEEDTIP = 16[default = 1]; // 设置是否需要弹气泡提示 1需要,0 不需要
}
// 业务系统附件下载消息定义
message HpDownFileMsg {
//请求体定义
message Request {
repeated HpFileBean DOWNFILE = 1;
}
//响应体定义
message Response {
optional bytes FILEID = 1; // 文件ID,唯一标示一个文件,客户端生成。
optional uint64 FILESIZE = 2;
optional uint32 PROCSTATE = 3[default = 0]; // 处理状态 0 下载中 ,1 已完成
optional uint64 WTPTR = 4; // 客户端开始写指针的位置
optional bytes FILEDATA = 5; // 文件内容
}
optional Request REQUEST = 1;
optional Response RESPONSE = 2;
}
// 业务系统附件上传消息定义
message HpUpFileMsg {
//请求体定义
message Request {
repeated HpFileBean UPFILE = 1; // 文件信息
}
//响应体定义
message Response {
optional bytes FILEID = 1; // 文件ID,唯一标示一个文件,客户端生成。
optional uint64 RDPTR = 2; // 服务器返回的客户端代上传文件的读指针偏移量
optional uint32 PROCSTATE = 3; // 处理状态 1 成功,0 上传中
optional uint32 NEEDREFRESH = 4; // 客户端收到后是否需要刷新服务器文件列表
}
optional Request REQUEST = 1;
optional Response RESPONSE = 2;
}
// 业务系统附件列表查看消息定义
message HpFileListMsg {
//请求体定义
message Request {
optional HpSvrPathBean SVRPATH = 1; // 服务器路径信息
optional uint32 FUNCID = 2; // 功能ID
optional uint32 ISAPPLY = 3; // 是否为受理
optional uint32 ISOTHER = 4; // 是否为其他环节
}
//响应体定义
message Response {
repeated HpSvrListBean FILELIST = 1; //文件大小
}
optional Request REQUEST = 1;
optional Response RESPONSE = 2;
}
// 业务系统附件列表查看消息定义
message HpFileDelMsg {
//请求体定义
message Request {
optional HpSvrPathBean SVRPATH = 1; // 目的文件夹目录
repeated bytes FILENAMES = 2;
optional uint32 FUNCID = 3; // 业务流水
optional uint32 ISCORP = 4; //
}
//响应体定义
message Response {
optional int32 RESULT =1; // 1:成功,0:失败
}
optional Request REQUEST = 1;
optional Response RESPONSE = 2;
}
// 附件同步
message SyncAttachMsg{
message Request{
optional bytes ORGID = 1; // 管理公司ID
optional bytes BIGID = 2; // 附件大类ID
optional bytes SMLID = 3; // 附件小类ID
optional bytes CUSTID = 4; // 客户ID
optional bytes CRDID = 5; // 受理流水号
}
message Response{
optional uint32 CODE = 1; // 响应消息bean
}
optional Request REQUEST = 1;
optional Response RESPONSE = 2;
}
已上传,已下载文件列表需保存为本地文件,格式为XML格式,定义如下:
<?xml version="1.0" encoding="UTF-8" ?>
<HPFILE xmlns="http://www.hpce.cn/HPFILE/1.0">
<FileList>
<File>
<FileID>20151225151255782</FileID>
<LocalPath>D:\project\??\1.jpg</LocalPath>
<SvrPath>30/35010001/3501/715/</SvrPath>
<WtPtr>31220</WtPtr>
<RdPtr>31220</RdPtr>
<FileSize>31220</FileSize>
<DoneSize>0</DoneSize>
<DoingSize>1024</DoingSize>
<BeginTime>2015-12-25 15:12:55</BeginTime>
<EndTime>2015-12-25 15:12:55</EndTime>
<State>1</State>
</File>
</FileList>
</HPFILE>
标签:
原文地址:http://www.cnblogs.com/monalood/p/5077745.html