eXpressApp Framework > 概念 > 扩展模块 > 文件附件模块概述(2011.09.18更新)

FileAttachments Module Overview文件附件模块概述

几乎所有的商业应用都需要文件操作。 例如,一个应用可以有一个名为“雇员”的业务对象,带有文件和文件夹属性。 这些属性应该支持操作比如文件附件的保存,打开和下载。eXpressApp Framework提供特定的数据类型和FileAttachments(文件附件)module(模块)去处理它们。FileAttachments模块提供Property Editors(属性编辑器)Controllers(控制器)去执行这些操作处理特定的文件数据类型。 这个主题详述了这些数据类型,连同模块,提供潜在的以扩展应用的文件操作。 看如何实现一个带有文件数据属性或文件容器属性的业务类的例子,参考How to: Implement File Data Properties(如何:实现文件数据属性)主题。

概述

eXpressApp FrameworkBusiness Class Library(业务类库)提供一个特殊的接口和特性用于与文件工作:

  • IFileData接口
    实现这个接口以开发数据类型使得一个最终用户可附加一个文件到一个业务对象。你也可以使用实现IFileData接口的ready-to-use(即刻使用)的FileData类型。
  • FileAttachmentAttribute
    这个特性指定哪个属性将返回一个IFileData类型值。使用这个特性以开发数据类型使得一个最终用户可附加文件容器到一个业务对象。你也可以使用应用FileAttachment特性的即刻使用的FileAttachmentBase类型。

上述的接口,特性和即刻使用的数据类型被分别包含在DevExpress.Persistent.BaseDevExpress.Persistent.Base.Impl程序集中。

FileAttachments模块分别被设计给Windows Forms和ASP.NET应用。所以,它被表现为FileAttachmentsWindowsFormsModuleFileAttachmentsAspNetModule模块项目。这些模块都包含属性编辑器和控制器以处理IFileData数据类型分别在Windows Forms和ASP.NET Web应用中。

使用需要的应用项目的Application Designer(应用设计器)去添加FileAttachments模块到你的应用。

附加的文件被以二进制形式存储在数据库中。当使用FileData类型,gzip压缩被应用且最大文件大小是4 GB。关于文件名的信息也被存储。

IFileData类型属性

如果你添加一个IFileData类型的属性到你的业务类,DevExpress.ExpressApp.FileAttachment.Win.FileDataPropertyEditorDevExpress.ExpressApp.FileAttachment.Web.FileDataPropertyEditor属性编辑器将被分别用来显示你的属性在默认的Windows Forms UI和Web Site UI。

Windows Forms属性编辑器为FileData属性提供下述的特性给最终用户:

  • 附加一个文件
    当一个最终用户点击省略号按钮在FileDataPropertyEditor上,Open对话框被调用,它允许附加必要的文件。
  • 保存一个附加的文件到硬盘
    一个最终用户可以调用交互菜单为FileDataPropertyEditor。这个菜单包含SaveTo Action。这个Action的Execute事件被由FileAttachmentControllerSaveFileData方法处理。所以,你可以在FileAttachmentController派生类中重写这个方法, 以在执行这个Action时执行特定代码。
  • 打开一个附加的文件
    一个最终用户可以调用交互菜单为FileDataPropertyEditor。这个菜单包含Open Action。这个Action的Execute事件被由FileAttachmentControllerOpen方法处理。所以,你可以在FileAttachmentController派生类中重写这个方法,以在执行这个Action时执行特定代码。
  • 分离一个文件
    一个最终用户可以调用交互菜单为FileDataPropertyEditor。这个菜单包含ClearContent Action。这个Action的Execute事件处理者调用属性类型的Clear方法,以清空文件内容。实现IFileData接口或重写FileData类以定义Clear方法用你自己的方式。

下面的图像展示了FileDataPropertyEditor在一个Windows应用:

Web属性编辑器为一个FileData属性带上两个单独的控件,为视图模式和编辑模式:

  • 视图模式

    允许最终用户去下载文件。要保存文件FileAttachmentControllerDownloadFileData方法被调用。所以,你可以在FileAttachmentController的派生类中重写这个方法,以在保存文件时执行特殊的代码。

  • 编辑模式

    提供Change FileClear按钮。前者允许最终用户通过选择需要的文件在Choose File对话框窗口中去改变属性值。后者允许最终用户去清空属性值。为了这个目的,属性值的Clear方法被调用。实现IFileData接口或重写FileData类以定义Clear方法以你自己的方式。

XPCollection<FileAttachment>类型属性

你可以添加一个XPCollection<FileAttachment>类型的属性当FileAttachment是一个使用FileAttachment特性(例如:FileAttachmentBase类型)的类。在这个实例中,一个列表属性编辑器与FileAttachment对象容器将被显示在一个UI中。这个属性编辑器将要伴随着特定控制器的Actions:

  • Windows Forms应用

    FileAttachmentController提供OpenSaveTo Actions;且FileAttachmentListViewController -AddFromFile Action。这些控制器都只为使用FileAttachment特性的对象而被激活(列表视图在一套FileAttachmentListViewController中)。

  • ASP.NET Web应用

    FileAttachmentController提供Download Action。这个控制器只为使用FileAttachment特性的对象而被激活。

Note注意

要添加文件容器到一个业务类,你可以实现XPCollection<IFileData>类型属性替代XPCollection<FileAttachment>类型属性(FileAttachment是一个使用FileAttachment特性的类)。在这个实例中,这些属性也将通过列表编辑器被显示。注意 不过,以上列出的Actions将不会被显示,因为特殊的控制器将不会被激活。

在Open Dialog中过滤文件类型

XAFWindows Forms应用中,你可以指定必然会出现在Open对话框的"Files of type"框中的文件类型过滤:

必要的文件类型过滤可以通过应用FileTypeFilterAttribute特性而被指定在代码中,或者通过修改Application Model(应用模型)。详细信息,参考FileTypeFilterAttribute类描述。

File Attachments模块在Windows Forms应用中的细节

Windows Forms FileAttachments模块允许你去自定义用来打开和保存被附加的文件的方法。

  • CustomOpenFileWithDefaultProgram
    默认时,要保存一个附加的文件,模块保存它到操作系统的临时文件夹,并且之后传递保存的文件到操作系统去打开。之后,操作系统搜索默认程序并启动它。模块不会删除已保存的文件,因为它不能确定一个文件什么时候不再被需要。所以,最终用户是为临时文件夹的内容负责的。
    你可以实现一个自定义行为。要完成这个,处理FileAttachmentsWindowsFormsModule.CustomOpenFileWithDefaultProgram事件。要取消默认行为,设置处理者的Handled参数为true。要访问模块,在一个自定义控制器中使用你的WinApplicationXafApplication.Modules属性类实例。
  • CustomSaveFiles
    默认时,要保存一个附加的文件,SaveFile对话框被调用。一个最终用户保存文件到必须的文件夹(默认时,MyDocuments被提供)。
    你可以实现一个自定义行为。要完成这个,处理FileAttachmentsWindowsFormsModule.CustomSaveFiles事件。要取消取消默认行为,设置处理者的Handled参数为true。要访问模块,在一个自定义控制器中使用你的WinApplicationXafApplication.Modules属性类实例。

File Attachments模块在ASP.NET Web应用中的细节

被ASP.NET支持的默认文件上传大小是4 MB。这个限制被用来避免通过用户发送大文件到服务器的人为的拒绝服务攻击。你可以改变这个限制通过指定httpRuntime元素的maxRequestLength特性在Web.config文件中。下面的代码片段阐明了这点。

Xml
<configuration>
    <system.web>
        <httpRuntime maxRequestLength="16384" />
     </system.web>
</configuration>

注意 不过去设置它到超过10-20 MB是不被推荐。更多信息,参考httpRuntime元素(ASP.NET 设置架构)MSDN文章。

属性编辑器可在特性演示中心的属性编辑器章节这里发现被展示,与XAF一起被安装。

See Also
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值