在 Blazor Server 中使用 EditForm 上传文件?
Upload files using EditForm in Blazor Server?
我正在使用 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
}
我正在使用 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
}