У меня есть оболочка для InputFile Стива Сандерсона, у которой есть свойство AllowedExtensions. Это фильтр постфактум, означающий, что пользователь должен загрузить файл, а затем вы сообщаете им, что расширение файла недопустимо. Есть целые темы о том, как сделать предварительную загрузку, и это, по меньшей мере, сложно.
Вот как я это сделал после загрузки:
Nuget: DataJuggler.Blazor.FileUpload
Полный исходный код, включая образец проекта Blazor, находится здесь:
https://github.com/DataJuggler/BlazorFileUpload
Здесь кратко изложена наиболее важная часть:
используя DataJuggler.Blazor.FileUpload
<FileUpload CustomSuccessMessage="Your file uploaded successfully."
OnReset="OnReset" ResetButtonClassName="localbutton" ShowStatus="false"
PartialGuidLength="10" MaxFileSize=@UploadLimit FilterByExtension="true"
ShowCustomButton="true" ButtonText="Start" OnChange="OnFileUploaded"
CustomButtonClassName="startbutton" ShowResetButton="false"
AppendPartialGuid="true" AllowedExtensions=".jpg;.png;"
CustomExtensionMessage="Only .jpg and .png files are allowed."
InputFileClassName="customfileupload" Visible=false
FileTooLargeMessage=@FileTooLargeMessage>
</FileUpload>
Обратите внимание на два свойства для AllowedExtensions и CustomExtensionMessage.
Вот соответствующая часть кода, в которой я обрабатываю FileUploaded:
// Create a new instance of a 'FileInfo' object.
FileInfo fileInfo = new FileInfo(file.Name);
// I don't know if it's even possible for an extension to be upper case
uploadedFileInfo.Extension = fileInfo.Extension.ToLower();
// if FilterByExtension is true and the AllowedExtensions text exists
if ((FilterByExtension) && (!String.IsNullOrWhiteSpace(AllowedExtensions)))
{
// verify the extension exists
if (!String.IsNullOrWhiteSpace(fileInfo.Extension))
{
// If the allowed extensions // fixed issue where uploading
abort = !AllowedExtensions.ToLower().Contains(fileInfo.Extension.ToLower());
}
else
{
// you must have an extension
abort = true;
}
}
Может быть, это даст вам некоторые идеи.
Если вы хотите увидеть действующий сайт, который его использует, я опубликовал это пару дней назад: https://pixeldatabase.net - Редактировать изображения с помощью BQL - Bitmap Query Language
person
Community
schedule
26.04.2020