如何将原始数据从客户端传递到 API 并将其保存为 Kendo 上传中的文件,从 kendo 异步保存选项调用 API

How to pass rawdata from Client to API and save it as a file in Kendo Upload, calling API from kendo async Save Option

第一步: 我已经为上传文件实现了 Kendo 上传控件,我正在尝试在单击按钮时使用 kendo 异步方法上传。

    $("#files").kendoUpload({
    localization: {
        select: "Select ..."
    },
    async: {
        autoUpload: false,
        saveUrl: $('#WebAPIUrl').val() + 'File/UploadPDF/'          
    },
    multiple: false,
    select: onPdfSelect,      
    remove: onPdfRemove,        
    validation: {
        allowedExtensions: [".pdf"],
        maxFileSize: 3145728,
    },
    dropZone: ".dropZoneElement"
    }).data("kendoUpload");

第 2 步: 我在这里遇到问题,在尝试 post 来自 kendo 异步调用的数据时,我无法从 webapi 检索以将文件保存在共享驱动器中

    [HttpPost("UploadPDF")]
    public async Task<IActionResult> UploadPDF(IFormFileCollection files)
    {}

我正在接收文件中的内容,但无法检索文件数据并将其另存为文件。

我尝试了 3 天后找到了答案。在这里发帖,因为这可能对某些人有所帮助。 基本上在这种情况下,您不需要在客户端做任何事情,数据将从 kendo 异步保存方法传递到 api,从 API 我们必须使用 FileStream 和CopyToAsync 用于在物理位置创建文件

 var fileName = "xyz.pdf";
        var filePath = Path.Combine(Directory.GetCurrentDirectory(), @"",fileName);
        using (var fileStream = new FileStream(filePath, FileMode.Create))
        {​​​​​​​
            await files[0].CopyToAsync(fileStream);
        }​​​​​​​