SV 文档及图片管理器
说明 此套应用是基于VS2012实现的Silverlight应用,此整套Silverlight控件因为会经常涉及到各种应用,所以作者就一起做在一个解决方案里了。里面的各个项目,都使用到一个核心文件操作类库SvFileFactory. 整个解决方案分为:DatumManage(文档管理),DatumSelector(文档发布器),ImageManage(图库管理),ImageSelector(图片发布器),ImageCut(图片剪切器)这5个应用。都需要用到FileRIAServicesLibrary类,此类是silverlight和web应用通信的共享类,而此类中的文件操作都是通过文件操作类库SvFileFactory实现的。所以我们先从SvFileFactory类库开始,简单的介绍一下实现的过程,因为里面的功能都是老生常谈的内容,所以本文对里面的具体实现不多做介绍,只是对每个项目做个大概的讲解。具体请查看源码里的代码与说明,当然,按照我们的惯例,数据库方面是不涉及的,需要您自己去构建和实现,我们只是提供完整的对象,您可以根据对象去构建您自己的数据库结构。 解决方案里应用的配置,我们都是需要在web.config文件里进行统一配置,有些应用还需要在调用的页面里加入一些参数,我们后面再做说明。
SvFileFactory 我们的应用都涉及到文件的操作,所以做一个统一的文件操作类库就是理所当然的事情了,此类库实现的无非就是在服务器上指定的文件目录来读写我们的文件,配置此类库的文件目录需要在web.config文件里配置。我们进去看看web.config文件就明白了,里面都有说明。此类的文件目录创建方式是按照日期来创建的,每天一个目录结构,比如在 2013-12-12这个日期我们上传了一个文件。那么此类就会先创建一个这样的目录结构:/Source/2013/12/12 前面的 source 表示我们的源文件目录,发布的话,就会有这样的一个目录结构:/Issue/2013/12/12 ;我们在文档或图库管理器里操作的文件都是对于 source 而言的,发布之后文件,会放在 Issue 目录。所以一旦文件发布以后,即使您删除了源文件,也不会影响发布之后的内容。意思就是发布后,系统会另外创建一个源文件的备份。此类很好的将文件与系统隔离开来,对我们的日后维护起到至关重要的作用。当然,也有他的缺点,就是在发布目录里,可能会存在很多已经不用的文件,比如一篇文章发布后,里面就包括了几个发布的文件,但是当文章删除后,文章里包含我们发布的文件是不会删除的(这个有心思的人,可以去实现,作者没有做这个)。这样就会占用硬盘空间,当然如果您的硬盘很大,这个不是问题,那就什么都OK啦。
DatumManage 文档管理器,这里的文档,是指所有的电子文档,都可以在这里进行管理,包括实时上传和下载和删除等操作。里面放了一些文件类型的图片,可以让我们更好的识别文件,你也可以自己加进去一些。
DatumSelector 文档发布器,这个最好配合一个Html编辑器来使用,文档发布后会生成一个发布后的文件链接,此链接如果放到页面上,点击就会下载此文件。调用此应用的时候,需要在调用页面配置一个获取发布文档链接的Javascript 函数名作为参数,如下: <param name="InitParams" value="GetIssueDatumsScript=getIssueDatums" /> 后面的getIssueDatums为您页面上的javascript函数名,此函数需要一个参数,此参数存储发布后的文档链接值。 ImageManage 图库管理,因为silverlight的特殊限制,目前只支持jpg和png两种格式的图片,如果您可以实现,最好也支持其他的文件格式,那样我们的应用就跟好的。在这里上传的所有图片都是原图,不做缩略处理,发布的时候才会做缩略处理。发布的缩略图大小,需要在web.config文件里进行统一设置。其他的功能与文档管理的相当。 ImageSelector 图片发布器,此处最好配合一个Html编辑器来使用,图片发布后会生成一个发布后的图片链接,在页面上加入<img>标签,就会直接显示我们发布的图片了。我们也可以在web.config文件里进行水印的设置,设置是否需要加水印,设置水印的图片和水印文字。水印的图片需要放在SvFileFactory类指定的根目录下,并且要为png格式的图片。水印文字,则需要在web.config里设置。调用此应用的时候,需要在调用页面配置一个获取发布图片链接的Javascript 函数名作为参数,如下: <param name="InitParams" value="GetIssueImgsScript=getIssueImgs" /> 后面的getIssueImgs为您页面上的javascript函数名,此函数需要一个参数,此参数存储发布后的图片链接值。 ImageCut 图片剪切器,此应用主要是针对单文件处理或用在设置人员头像等地方。可以直接通过摄像头进行图片的截取,然后再进行剪切操作。调用此应用的时候,需要在调用页面配置一个获取剪切后的图片链接的Javascript 函数名作为参数,如下: <param name="InitParams" value="CloseDialog=getImageCut" /> 后面的getImageCut为您页面上的javascript函数名,此函数需要一个参数,此参数存储剪切后的图片链接值。 温馨提示1:以上应用,在实际应用中,可能会出现多层遮挡的现象,如果出现这种现象,需要在调用页面加一个参数,如下: <param name="windowless" value="true" /> 但加了此参数后,会导致Silverlight内无法输入汉字的问题。所以请各位酌情使用。 温馨提示2:在设置web.config文件的时候,设置单文件上传最大限制的时候 <add key="DatumMaxFileSize" value="50" /> 单文档最大值以M为单位 <add key="ImageMaxFileSize" value="4" />单图片最大值以M为单位 取其中文档或图片的最大值,作为页面请求的最大值来设置,如下:
<httpRuntime targetFramework="4.5" maxRequestLength="51200" requestValidationMode="2.0" />
电子文档和图库的现实使用,请登录http://www.gxpmt.com。里面有文档和图库管理的现实使用,并且已经配合了一个Html编辑器进行使用,您在发布文章的时候可以看到:
电子文档和图库实现及使用我们就介绍到这里。 源码下载: |