При текущем положении дел (по состоянию на 2 апреля 2020 года) вам потребуется JS, это неизбежно.
Существует два основных подхода:
получить данные файла в событии onchange
ввода и вызвать методы C#, передав им byte[]
- это в основном подход к селектору файлов, который вы связали, когда вы получаете данные файла в Blazor приложение, чтобы делать с ним все, что вы хотите.
получить данные файла в событии onchange
ввода и использовать JS для вызова удаленной конечной точки, которая получит файл и сделайте что-нибудь с этим (например, сохраните это на своем NAS или поместите в свою БД). Это фактическая загрузка файла, в отличие от селектора файлов.
Оба подхода похожи с точки зрения кодирования - вам нужно JS. Возможно, в будущей версии Blazor мы получим <InputFile>
, который сделает выбор, чтобы вы могли загружать с C# HTTP-запросами.
Подход File Selector относительно прост в реализации (буквально несколько линии), но он не дает вам файл на сервере, вам придется немного поработать над этим. Подход к загрузке файлов сложнее понять. Я лично использовал бы пакет другого для любого. Для загрузки файлов такие вещи, как Telerik UI для Blazor могут быть коммерчески пригодны, а для более простых селекторов уже есть другой ответ, который связывает примеры. Кстати, у демонстраций Telerik также есть один такой пример в качестве компонента, реализованного для некоторых демонстраций.