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