EPR类企业管理系统

在我们现有系统基础上或全新开发,提供定制服务
为您的企业高效快速实施ERP,WMS,MES,CRM管理系统
全面管控物料仓库、销售业务、采购业务、仓库业务
生产过程、质量检验、组织架构、业务报表


定制
QQ:460-3528

开发
QQ群:3360-90194

源码
微信:136-3650-3721

文件附件模块

几乎每个业务应用程序都需要文件操作。例如,一个应用程序可以具有一个具有File和Portfolio属性的Employee业务对象。这些属性应支持诸如文件附件,保存,打开和下载之类的操作。该eXpressApp框架提供特殊的数据类型,以及FileAttachments 模块来处理它们。该FileAttachments模块提供的属性编辑器控制器以特殊的文件数据类型执行这些操作。本主题详细介绍了这些数据类型以及模块提供的潜力,可以通过文件操作扩展应用程序。要查看有关如何实现具有文件数据属性或文件集合属性的业务类的示例,请参阅如何:实现文件数据属性主题。

概述

eXpressApp框架商业类库提供了一个特殊的接口和属性与文件的工作:

  • IFileData接口

    实现此接口以开发使最终用户能够将文件附加到业务对象的数据类型。您还可以使用实现IFileData接口的即用型FileData类型。

  • FileAttachmentAttribute

    此属性指定返回IFileData类型值的属性。使用此属性来开发使最终用户能够将文件集合附加到业务对象的数据类型。您还可以使用应用FileAttachment属性的即用型FileAttachmentBase类型。

上述接口,属性和即用型数据类型分别包含在DevExpress.Persistent.BaseDevExpress.Persistent.BaseImpl程序集中。

FileAttachments模块为的WinForms,ASP.NET和移动应用单独设计。因此,它由FileAttachmentsWindowsFormsModuleFileAttachmentsAspNetModuleFileAttachmentsMobileModule模块项目表示。这些模块包含属性编辑器和控制器,分别与WinForms,ASP.NET和Mobile应用程序中的IFileData数据类型一起使用。

要将FileAttachments模块添加到您的应用程序中,请使用所需应用程序项目的“应用程序设计器”。

注意

附件以二进制表示形式存储在数据库中。使用FileData类型时,将应用gzip压缩,并且最大文件大小为4 GB。还存储有关文件名的信息。另外,您可以实现文件系统存储,如“如何:在文件系统中存储文件附件”中所示,而不是数据库“代码中心”示例中所示。

提示

要将存储在当前FileData对象中的文件保存到指定的流,请使用IFileData.SaveToStream方法。

IFileData类型的属性和方法

如果将IFileData类型属性添加到业务类,则DevExpress.ExpressApp.FileAttachment.Win.FileDataPropertyEditorDevExpress.ExpressApp.FileAttachment.Web.FileDataPropertyEditorDevExpress.ExpressApp.FileAttachments.Mobile.MobileFileDataPropertyEditor属性编辑器用于显示属性在默认的WinForms UI,Web站点UI和Mobile UI中。

用于FileData属性的WinForms属性编辑器为最终用户提供以下功能:

  • 附加档案

    当最终用户单击FileDataPropertyEditor上的省略号按钮时,将调用OpenFileDialog对话框,该对话框允许添加所需的文件。

  • 将附件保存到磁盘

    最终用户可以调用FileDataPropertyEditor的上下文菜单。该菜单包含SaveTo Action。此Action的Execute事件由FileAttachmentControllerSaveFileData方法处理。因此,您可以在FileAttachmentController后代中重写此方法,以在执行此Action时执行特定的代码。

  • 打开附件

    最终用户可以调用FileDataPropertyEditor的上下文菜单。此菜单包含“打开操作”。此Action的Execute事件由FileAttachmentControllerOpen方法处理。因此,您可以在FileAttachmentController后代中重写此方法,以在执行此操作时执行特定的代码。

  • 分离文件

    最终用户可以调用FileDataPropertyEditor的上下文菜单。此菜单包含ClearContent操作。此Action的Execute事件处理程序调用属性类型的Clear方法,以清除文件内容。实现IFileData接口,或重写FileData类以您自己的方式定义Clear方法。

下图演示了WinForms应用程序中的FileDataPropertyEditor

IFileDataWin

用于FileData属性的Web属性编辑器显示FileDataEdit控件,该控件在“查看”模式和“编辑”模式下显示一组不同的控件:

  • 查看模式

    显示HtmlAnchor控件,该控件允许用户下载当前文件。

    IFileDataWebViewMode

  • 编辑模式

    使用两个ASPxButton控件显示 “更改文件”和“清除”按钮。

    IFileDataWebEditMode

    清除按钮允许最终用户清除属性值。为此,将调用属性类型的Clear方法。您可以实现IFileData接口或重写FileData类以自己的方式定义Clear方法。

    单击“更改文件”按钮,将使ASPxUploadControl可见,从而使最终用户可以上传新文件。

    FileDataEdit_FileDataPropertyEditor_Transparent

    的HtmlAnchor控制也显示,所以用户可以下载在编辑模式下当前文件。

FileData属性的移动属性编辑器仅支持文件下载。

MobileFileDataPropertyEditor

您可以使用代码附加和获取文件。该LoadFromStreamSaveToStream方法用于此目的。请注意,LoadFromStream方法不需要文件的完整路径,它仅将文件名作为第一个参数。

请参阅我们文档中的“文件附件属性”部分,以了解有关文件附件属性创建的更多信息。

打开对话框中的文件类型过滤器

XAF WinForms应用程序中,可以指定必须出现在“打开”对话框的“文件类型”框中的文件类型过滤器:

FileTypeFilterAttribute

可以通过应用FileTypeFilterAttribute属性或修改Application Model来在代码中指定所需的文件类型过滤器。有关详细信息,请参考FileTypeFilterAttribute类描述。

WinForms应用程序中文件附件模块的详细信息

WinForms FileAttachments模块允许您自定义用于打开和保存附件的方法。

  • CustomOpenFileWithDefaultProgram

    默认情况下,要打开附件,模块将其保存到操作系统的临时文件夹中,然后将保存的文件传递给操作系统以打开。然后,操作系统搜索默认程序并启动它。该模块不会删除保存的文件,因为它无法确定何时不需要文件。因此,最终用户负责临时文件夹的内容。

    您可以实现自定义行为。为此,请处理FileAttachmentsWindowsFormsModule.CustomOpenFileWithDefaultProgram事件。要取消默认行为,请将处理程序的Handled参数设置为true。要访问该模块,请在自定义Controller中使用WinApplication类实例的XafApplication.Modules属性。

  • CustomSaveFiles

    默认情况下,要保存附件,将调用SaveFile对话框。最终用户将文件保存到所需的文件夹(默认情况下,提供MyDocuments)。

    您可以实现自定义行为。为此,请处理FileAttachmentsWindowsFormsModule.CustomSaveFiles事件。要取消默认行为,请将处理程序的Handled参数设置为true。要访问该模块,请在自定义Controller中使用WinApplication类实例的XafApplication.Modules属性。

ASP.NET Web应用程序中的文件附件模块特定信息

ASP.NET支持的默认文件上传大小为4 MB。此限制用于防止由于用户将大文件发布到服务器而导致的拒绝服务攻击。您可以通过在Web.config文件中指定httpRuntime元素的maxRequestLength属性来更改限制。以下代码段对此进行了说明。

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

但是请注意,不建议将其设置为超过10-20 MB。有关其他信息,请参考httpRuntime元素(ASP.NET设置架构) MSDN文章。

请参阅XAF随附的Feature Center演示的“属性编辑器”部分中此处描述的属性编辑器,或在线参考Feature Center演示以查看这些编辑器的运行情况。

相关文章

转载保留此链接,注明出处