在Blazor Server中使用EditForm上传文件?

时间:2020-08-31 07:51:59

标签: file-upload blazor blazor-server-side blazor-editform

我正在使用Blazor服务器端,并希望上传一些文件。我不需要任何进度条,仅想在提交EditForm时上传文件。到目前为止,我发现的流行解决方案(Synfusion Blazor文件上载,Steve Sandersons File Upload)是在选定文件后上传文件,而不是在EditForm提交中上载。我能否简单地在HTML中使用input type="file"?我将如何使用EditForm来做到这一点,以及如何在服务器端接收文件?

2 个答案:

答案 0 :(得分:0)

Steve Sandersons File Upload适用于

void HandleFileSelected(IFileListEntry[] files)
{
    // Do something with the files, e.g., read them
}

只需存储files,并在提交表单时访问IFileListEntry.Data。无需立即在HandleFileSelected中读取流。

答案 1 :(得分:0)

Steve Sanderson 的文件上传很好,但不是必需的。我自己的代码处理 Change 事件中的文件上传,但我很确定您可以通过以下方式推迟上传:

<InputFile OnChange="HandleFileUpload" multiple></InputFile>

@code {
    InputFileChangeEventArgs FileArgs {get; set;}

 async Task HandleFileUpload(InputFileChangeEventArgs e)
{
    FileArgs = e;
}

然后,当您准备好实际处理文件时,请继续使用以下内容处理参数(例如,在您的表单提交方法中):

foreach (var imageFile in FileArgs.GetMultipleFiles(maxAllowedFiles))
{
    // Do file stuff
}