如何将原始数据从客户端传递到 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);
}
第一步: 我已经为上传文件实现了 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);
}