Загрузка файла сервера Blazor ⇐ C#

Место общения программистов C#
Anonymous
Загрузка файла сервера Blazor

Сообщение Anonymous »

Я тестирую загрузку изображения в моем приложении Blazor Server. Для этого мой компонент.

Код: Выделить всё

@page "/uploadtest"

Upload Example
[url=Identity/Account/Login]log in[/url] or [url=Identity/Account/Register]register[/url] a new account!


Я помещаю код-завод в отдельный файл .razor.cs , класс выглядит следующим образом:

Код: Выделить всё

public partial class UploadExample: ComponentBase
{
#region Protected Properties
[Inject]
protected AuthenticationStateProvider AuthenticationStateProvider { get; private set; }

[Inject]
protected IWebHostEnvironment WebHostEnvironment { get; private set; }
#endregion

#region Public Methods
/// 
/// File upload
/// Only images of type .jpg and png are allowed here.
/// 
/// 

/// 
protected async Task UploadImages(InputFileChangeEventArgs ifc)
{
var authState = await AuthenticationStateProvider.GetAuthenticationStateAsync();
var user = authState.User;

if (user.Identity.IsAuthenticated)
{
try
{
string userId = user.FindFirst(c => c.Type.Contains("nameidentifier"))?.Value;
string currentTime = DateTime.Now.ToString("yyyy-dd-M--HH-mm-ss");
string path = Path.Combine(WebHostEnvironment.WebRootPath, $@"UserData/{userId}/UploadTest/{currentTime}");
Directory.CreateDirectory(path);
var files = ifc.GetMultipleFiles();
foreach (var file in files)
{
var filePath = Path.Combine(path, file.Name);
await using FileStream fs = new(filePath, FileMode.Create);
await file.OpenReadStream().CopyToAsync(fs);
}
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
}
#endregion
}
< /code>
Вот мои проблемы: < /p>

 По какой -то причине после выполнения функции uploadimages () < /code> приложение молча сбои. Я не могу найти ничего полезного на выводе консоли, и не брошены никаких исключений, это просто останавливается с кодом -1. Файлы, однако, успешно загружаются в ожидаемую папку. Кроме того, сбой, по -видимому, не зависит от функции. У меня уже есть уровень доступа к данным, который представляет собой отдельную библиотеку классов и обрабатывает все материалы базы данных. По сути, я хочу только путь к изображениям, хранящимся в базе данных, но библиотека доступа к данным все еще должна обрабатывать хранение изображений A. Обычно это дает ibrowserfile 
объекты в отдельную библиотеку классов? Если нет, как будут отправлены данные на уровень доступа к данным? /> < /blockquote>
Как только я выберу любой файл для загрузки. Я проверил разные вещи (с/без авторизации, вызов/не вызывая функции uploadimages () и т. Д.)


Подробнее здесь: https://stackoverflow.com/questions/711 ... hes-server

Вернуться в «C#»