如何解决在Blazor Server中使用EditForm上传文件?
我正在使用Blazor服务器端,并希望上传一些文件。我不需要任何进度条,仅想在提交EditForm
时上传文件。到目前为止,我发现的流行解决方案(Synfusion Blazor文件上载,Steve Sandersons File Upload)是在选定文件后上传文件,而不是在EditForm
提交中上载。我能否简单地在HTML中使用input type="file"
?我将如何使用EditForm
来做到这一点,以及如何在服务器端接收文件?
解决方法
Steve Sandersons File Upload适用于
void HandleFileSelected(IFileListEntry[] files)
{
// Do something with the files,e.g.,read them
}
只需存储files
,并在提交表单时访问IFileListEntry.Data
。无需立即在HandleFileSelected
中读取流。
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
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。