簡體   English   中英

是否可以在沒有 API 的情況下使用 DxUpload(在 DevExpress Blazor 中)?

[英]Is it possible to use DxUpload (in DevExpress Blazor) without having an API?

我在我的Blazor Server App項目中使用DevExpress組件。 我想使用DxUpload組件將一個 excel 文件上傳到服務器,並對數據庫進行一些批量插入操作。 文檔說我需要創建一個WEB API項目。 當我的項目是Blazor Server App時,我是否必須使用單獨的WEB API

我認為這個解決方案實際上比 DevExpress 希望您如何使用他們的組件更像是一個 hack。 但是,您可以通過公開的SelectedFilesChanged事件捕獲文件上傳,然后自己手動處理文件。

<DxUpload UploadMode=UploadMode.OnButtonClick
          SelectedFilesChanged="@SelectedFilesChanged"
          AllowMultiFileUpload="true" 
          @ref="MyUpload" >
</DxUpload>

<DxButton Text="Upload the First File" Click=OnButtonClick />

@code {
    private string FileServerPath => "\\\\server-02\\DATA\\";
    bool UploadVisible { get; set; } = false;
    IEnumerable<UploadFileInfo> Files { get; set; }
    UploadFileInfo FirstFile { get; set; }
    DxUpload MyUpload { get; set; }

    protected void SelectedFilesChanged(IEnumerable<UploadFileInfo> files) {
        Files = files;
        UploadVisible = files.ToList().Count > 0;

        InvokeAsync(StateHasChanged);
    }

    protected async Task OnButtonClick(){
         selectedFile= Files.First();
         Stream stream = selectedFile.OpenReadStream(maxAllowedSize: 50000000);
         FileStream fs = File.Create(FileServerPath + selectedFile.Name));
         await stream.CopyToAsync(fs);
         stream.Close();
         fs.Close();
    }
    StateHasChanged();
}

顯然, OnButtonClick方法需要針對可空性、使用語句、在集合中選擇適當的文件等進行重構。 但這應該為您指明正確的方向。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM