1. 描述
面向服务的体系结构(SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种各样的系统中的服务可以使用一种统一和通用的方式进行交互。
本程序的文件管理采用文件分类的方式对文件进行管理,避免一个文件只能包含在一个文件夹中。使用文件分类的方式管理,文件可分为多个类别,也不属于任何类别,提高文件管理灵活性。本文件管理服务处理大文件的分块上传、下载,可以实现文件的断点续传、下载功能。
2. 文件管理服务介绍
文件管理服务使用VS2008 C# 开发的Web Service 程序。
2.1. 文件分类方法
文件分类方法包括:新增、修改、删除及获取文件分类。
方法名称 |
方法说明 |
|||||||||||||||
public SQReturnResult GetFileClassifyList() |
说明: 获取我的文件分类。成功返回:0;失败返回:1;异常返回:-1。
返回参数: SQReturnResult:返回结果类。包含:Status(状态)和Result(结果)两属性。Status等于0时,Result为文件分类数据表。Status不等于0时,Result 为失败信息。
文件分类数据表结构:
|
|||||||||||||||
public SQReturnResult InsertFileClassify(string pUFClassifyName, string pUFClassifyDesc) |
新增文件分类。成功返回:0;失败返回:1;异常返回:-1。
输入参数: pUFClassifyName:文件分类名称 pUFClassifyDesc:文件分类描述
返回参数: SQReturnResult:返回结果类。包含:Status(状态)和Result(结果)两属性。Status等于0时,Result为单行文件分类数据表。Status不等于0时,Result 为失败信息。
|
|||||||||||||||
public SQReturnResult UpdateFileClassify(long pUFClassifyId, string pUFClassifyName, string pUFClassifyDesc) |
更新我的文件分类。成功返回:0;失败返回:1;异常返回:-1。
输入参数: pUFClassifyId:文件分类标识 pUFClassifyName:文件分类名称 pUFClassifyDesc:文件分类描述
返回参数: SQReturnResult:返回结果类。包含:Status(状态)和Result(结果)两属性。Status等于0时,Result为单行文件分类数据表。Status不等于0时,Result 为失败信息。
|
|||||||||||||||
public SQReturnResult DeleteFileClassify(long pUFClassifyId, string pUFClassifyName) |
删除我的文件分类。成功返回:0;失败返回:1;异常返回:-1。
输入参数: pUFClassifyId:文件分类标识 pUFClassifyName:文件分类名称
返回参数: SQReturnResult:返回结果类。包含:Status(状态)和Result(结果)两属性。Status等于0时,Result为Ture。Status不等于0时,Result 为失败信息。
|
|||||||||||||||
public SQReturnResult CheckFileClassify(long pUFClassifyId, string pUFClassifyName) |
检查文件分类是否存在。不存在返回:0;存在返回:1;异常返回:-1。文件分类不允许重复,即提供此方法进行检查。
输入参数: pUFClassifyId:文件分类标识 pUFClassifyName:文件分类名称
返回参数: SQReturnResult:返回结果类。包含:Status(状态)和Result(结果)两属性。Status等于0时,Result为Ture。Status不等于0时,Result 为失败信息。
|
2.2. 文件管理方法
文件分类方法包括:上传文件、修改文件信息、删除文件、下载文件、获取所有文件、获取已分类文件和获取未分类文件列表。
方法名称 |
方法说明 |
||||||||||||||||||||||||
public SQReturnResult GetFileList() |
获取我的所有文件列表。返回前1000条文件信息
返回参数: SQReturnResult:返回结果类。包含:Status(状态)和Result(结果)两属性。Status等于0时,Result为文件信息数据表。Status不等于0时,Result 为失败信息。
文件分类数据列表结构:
|
||||||||||||||||||||||||
public SQReturnResult GetClassifyFileList(long pUFClassifyId) |
获取我的已分类文件列表。文件分类标识为0时,返回前1000条文件信息
输入参数: pUFClassifyId:文件分类标识。
返回参数: SQReturnResult:返回结果类。包含:Status(状态)和Result(结果)两属性。Status等于0时,Result为文件信息数据表。Status不等于0时,Result 为失败信息。
|
||||||||||||||||||||||||
public SQReturnResult GetNoClassifyFileList() |
获取我的未分类文件列表。文件分类标识为0时,返回前1000条文件信息
返回参数: SQReturnResult:返回结果类。包含:Status(状态)和Result(结果)两属性。Status等于0时,Result为文件信息数据表。Status不等于0时,Result 为失败信息。
|
||||||||||||||||||||||||
public SQReturnResult CheckFileInfo(long pUFileId, string pUFileName) |
检查文件是否存在。不存在返回:0;存在返回:1;异常返回:-1。 输入参数: pUFileId:文件标识 pUFileName:文件名称
返回参数: SQReturnResult:返回结果类。包含:Status(状态)和Result(结果)两属性。Status等于0时,Result为True。Status不等于0时,Result 为失败信息。
注:文件名称不能重复。 |
||||||||||||||||||||||||
public SQReturnResult InsertFile(string pUFileName, string pUFileDesc, byte[] pFileContent,long[]pUFClassifyIds) |
新增我的文件信息。需先上传文件内容。成功返回:0;失败返回:1;异常返回:-1。
输入参数: pUFileName:文件名称 pUFileDesc:文件描述 pFileContent:文件内容 pUFClassifyIds:文件分类标识
返回参数: SQReturnResult:返回结果类。包含:Status(状态)和Result(结果)两属性。Status等于0时,Result为单行文件信息数据表。Status不等于0时,Result 为失败信息。
注意:当文件大于4MB时,需要将文件分块上传。 |
||||||||||||||||||||||||
public SQReturnResult UploadFileByte(string pFileName, byte[] pFileContent, long pOffset) |
上传文件字节。成功返回:0;失败返回:1;异常返回:-1。
输入参数: pFileName:文件名称 pFileContent:文件字节 pOffset:文件保存位置
返回参数: SQReturnResult:返回结果类。包含:Status(状态)和Result(结果)两属性。Status等于0时,Result为True。Status不等于0时,Result 为失败信息。
|
||||||||||||||||||||||||
public SQReturnResult InsertFileInfo(string pUFileName, string pUFileDesc, long[] pUFClassIds) |
新增我的文件信息。需先上传文件内容。成功返回:0;失败返回:1;异常返回:-1。
输入参数: pUFileName:文件名称 pUFileDesc:文件描述 pUFClassifyIds:文件分类标识
返回参数: SQReturnResult:返回结果类。包含:Status(状态)和Result(结果)两属性。Status等于0时,Result为单行文件信息数据表。Status不等于0时,Result 为失败信息。
注意:当文件分块上传后时,新增文件信息。 |
||||||||||||||||||||||||
public SQReturnResult UpdateFileInfo(long pUFileId, string pUFileName, string pUFileDesc) |
更新我的文件信息。需先上传文件内容。成功返回:0;失败返回:1;异常返回:-1。
输入参数: pUFileId:文件标识 pUFileName:文件名称 pUFileDesc:文件描述
返回参数: SQReturnResult:返回结果类。包含:Status(状态)和Result(结果)两属性。Status等于0时,Result为单行文件信息数据表。Status不等于0时,Result 为失败信息。
|
||||||||||||||||||||||||
public SQReturnResult ChangeFileClassify(long pUFileId, string pUFileName, long[] pUFClassifyIds) |
调整我的文件分类。需先上传文件内容。成功返回:0;失败返回:1;异常返回:-1。
输入参数: pUFileId:文件标识 pUFileName:文件名称 pUFClassifyIds:文件分类标识
返回参数: SQReturnResult:返回结果类。包含:Status(状态)和Result(结果)两属性。Status等于0时,Result为True。Status不等于0时,Result 为失败信息。
|
||||||||||||||||||||||||
public SQReturnResult GetFileClassify(long pUFileId) |
获取我的文件的文件分类。成功返回:0;失败返回:1;异常返回:-1。
输入参数: pUFileId:文件标识
返回参数: SQReturnResult:返回结果类。包含:Status(状态)和Result(结果)两属性。Status等于0时,Result为文件分类标签表。Status不等于0时,Result 为失败信息。
文件分类标签表结构
|
||||||||||||||||||||||||
public SQReturnResult DeleteFile(long pUFileId, string pUFileName) |
删除我的文件。成功返回:0;失败返回:1;异常返回:-1。
输入参数: pUFileId:文件标识 pUFileName:文件名称
返回参数: SQReturnResult:返回结果类。包含:Status(状态)和Result(结果)两属性。Status等于0时,Result为True。Status不等于0时,Result 为失败信息。
|
||||||||||||||||||||||||
public SQReturnResult DownloadFile(string pFileName) |
下载我的文件。成功返回:0;失败返回:1;异常返回:-1。
输入参数: pUFileName:文件名称
返回参数: SQReturnResult:返回结果类。包含:Status(状态)和Result(结果)两属性。Status等于0时,Result为文件64位字符串。Status不等于0时,Result 为失败信息。
注:当文件大于4MB时,需要采用分块下载的方式。 |
||||||||||||||||||||||||
public SQReturnResult GetFileInfo(string pFileName) |
获取我的文件信息。成功返回:0;失败返回:1;异常返回:-1。
输入参数: pUFileName:文件名称
返回参数: SQReturnResult:返回结果类。包含:Status(状态)和Result(结果)两属性。Status等于0时,Result为单行文件信息表。Status不等于0时,Result 为失败信息。
|
||||||||||||||||||||||||
public SQReturnResult DownloadFileByte(string pFileName, long pOffset, int pDownLength) |
下载我的文件字节。分块下载,分块控制在1MB内。成功返回:0;失败返回:1;异常返回:-1。
输入参数: pUFileName:文件名称 pOffset:下载文件内容起始位置 pDownLength:下载文件大小
返回参数: SQReturnResult:返回结果类。包含:Status(状态)和Result(结果)两属性。Status等于0时,Result为文件64位字符串。Status不等于0时,Result 为失败信息。
|
未完持续。。。