Не уверен, поможет ли это вам, но у меня есть пакет Nuget с именем BlazorFileUpload, который поставляется с примером проекта:
https://github.com/DataJuggler/BlazorFileUpload
Это основано на BlazorInputFile от SteveSanderson, создателя Blazor в Microsoft.
Код бритвы:
@ с использованием DataJuggler.Blazor.FileUpload
<FileUpload CustomSuccessMessage="Your file uploaded successfully."
OnChange="OnFileUploaded" FilterByExtension="true"
ShowStatus="false" PartialGuidLength="10" MaxFileSize="4194304"
ShowCustomButton="true" ButtonText="Select File"
CustomButtonClassName="buttonwide"
AllowedExtensions=".jpg;.png;" ShowResetButton="true" OnReset="OnReset"
ResetButtonClassName="button" ResetButtonText="Reset"
CustomExtensionMessage="Only .jpg and .png files are allowed."
AppendPartialGuid="true"
FileTooLargeMessage="The file uploaded must be 4 megabytes or smaller.">
</FileUpload>
Вызов события OnFileUploaded вызывается после файл загружен:
/// <summary>
/// method returns the File Uploaded
/// </summary>
private void OnFileUploaded(UploadedFileInfo uploadedFileInfo)
{
// if aborted
if (uploadedFileInfo.Aborted)
{
// get the status
status = uploadedFileInfo.ErrorMessage;
}
else
{
// get the status
status = "The file " + uploadedFileInfo.FullName + " was uploaded.";
// other information about the file is available
//DateTime lastModified = uploadedFileInfo.LastModified;
//string nameAsItIsOnDisk = uploadedFileInfo.NameWithPartialGuid;
//string partialGuid = uploadedFileInfo.PartialGuid;
//long size = uploadedFileInfo.Size;
//string type = uploadedFileInfo.Type;
// The above information can be used to display, and / or process a file
}
}
Пример проекта находится в папке Samples перечисленных выше репо Git.
Компонент UploadDirectory компонента FileUpload по умолчанию имеет значение wwwroot/Upload, поэтому это должно работать для вас:
[Parameter]
public string UploadFolder { get; set; } = "wwwroot/Upload/";
Я почти закончил с образцом BlazorImageGallery, это должно быть сделано позже на этой неделе:
Существует также видео, которое поставляется с проектом BlazorFileUpload, если кто-то хочет посмотреть: https://youtu.be/Hj_k90mifSQ
Возможно, это кому-нибудь поможет.