DevExpress DxUpload实现大文件上传

该博客展示了前端文件上传的API控制器实现,使用了DevExpress相关组件。代码中定义了文件大小、类型、存储路径等参数,实现了临时文件清理、文件处理、文件追加等功能,包含UploadFile和Upload两个文件上传接口,并对文件大小和类型进行了检查。

前端实现在如下

@inherits ProductionOrderComponentBase

<ProcessingSpiner Visible="@IsComponentBusy"/>

@if (IsValidating)
{
    <LoadingProcess />
}
else
{
    if (ComponentMode == ComponentMode.List)
    {
        <div class="position-relative">
            <div class="@(IsDetailBusy ? "component-backdrop" : null)"></div>

            <WarningModal WarningMessage="@WarningMessage"
                          WarningResponse="@HandleWarningResponse"
                          @bind-IsShowWarning="@IsShowWarning"/>

            <DxDataGrid CustomData="@LoadProductionOrders"
                        KeyFieldName="@KeyFieldName"
                        CssClass="@CssClass"
                        PageSize="@PageSize"
                        PageIndex="@PageIndex"
                        SelectionMode="@SelectionMode"
                        SelectAllMode="@SelectAllMode"
                        ShowFilterRow="IsShowFilterRow"
                        RowClick="@OnRowClick"
                        LayoutRestoring="@OnLayoutRestoring"
                        PagerPageSizeSelectorVisible="true"
                        PagerAllDataRowsItemVisible="true"
                        PagerAllowedPageSizes="@AllowedPageSizes"
                        @bind-MultipleSelectedDataRows="@SelectedCollection"
                        @ref="@Grid"
                        T="@ProductionOrderWithDetail">

                <HeaderTemplate>
                    <DataGridToolbar IsBusy="@(IsBusy || IsMasterBusy || IsDetailBusy)"
                                     CssClass="@ToolbarCssClass"
                                     SelectedCount="@SelectedCount"
                                     RequiredClaimType="@RequiredClaimType"
                                     OnToolbarClick="@HandleToolbarResponse"
                                     CanRestore="@CanRestore"
                                     ReadOnly="@ReadOnly">
                        @if (ReadOnly == false)
                        {
                            <DxToolbarItem Text="Generate Delivery Sheet"
                                           Click="@GenerateInventoryRequest"
                                           IconCssClass="mdi mdi-18px mdi-file-move-outline"
                                           Enabled="@(IsBusy == false)"
                                           CssClass="font-bigger"
                                           Visible="@CanEdit"/>

                            <DxToolbarItem Text="上传"
                                           id="overviewDemoSelectButton1" 
                                           IconCssClass="mdi mdi-18px mdi-file-move-outline"
                                           Enabled="@(IsBusy == false)"
                                           CssClass="font-bigger"
                                           Visible="@CanEdit" /> 
                            <DxUpload Name="myFile"
                                      Visible=true
                                      ExternalSelectButtonCssSelector="#overviewDemoSelectButton1"
                                      ExternalDropZoneCssSelector="#overviewDemoDropZone"
                                      ExternalDropZoneDragOverCssClass="bg-light border-secondary text-dark" 
                                      ChunkSize="2000000"
                                      MaxFileSize=999999999
                                      UploadUrl="@GetUploadUrl("/api/Files/UploadFile/")"
                                      CssClass="w-100">
                            </DxUpload>
                        }
                    </DataGridToolbar>

                    
                </HeaderTemplate>

                <Columns>
                    @* <DxDataGridSelectionColumn Width="60px"/> *@
                    <DxDataGridColumn Field="@nameof(ProductionOrderWithDetail.OrderNumber)"
                                      Caption="No."
                                      Width="100px">
                        <DisplayTemplate>
                            @{
                                var requestNumb = $"{((ProductionOrderWithDetail) context).OrderNumber:000000}";
                                <span>@requestNumb</span>
                            }
                        </DisplayTemplate>
                    </DxDataGridColumn>
                    <DxDataGridDateEditColumn Field="@nameof(ProductionOrderWithDetail.OrderDate)"
                                              DisplayFormat="dd/MM/yyyy"
                                              Width="100px"
                                              Caption="Date"
                                              Visible="false"/>
                    <DxDataGridDateEditColumn Field="@nameof(ProductionOrderWithDetail.DueDate)"
                                              DisplayFormat="dd/MM/yyyy"
                                              Width="100px"
                                              Caption="Due Date"/>
                    <DxDataGridDateEditColumn Field="@nameof(ProductionOrderWithDetail.CompletedDate)"
                                              DisplayFormat="dd/MM/yyyy"
                                              Width="100px"
                                              Caption="Completed Date"
                                  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

meslog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值