@page "/dms/upload"
@using MudBlazor
@inject Pldpro.Web.UI.Services.IDocumentClient Client
@inject NavigationManager Nav
@inject ISnackbar Snackbar
Upload
Dokument-Upload
@foreach (var b in _buckets)
{
@b
}
@foreach (var msg in _messages)
{
@msg
}
Zur Liste
Dashboard
@code {
private List _buckets = new();
private string? _bucket;
private string? _path;
private RenderFragment? _result;
private const long StreamLimit = 512L * 1024 * 1024;
protected override async Task OnInitializedAsync()
{
try
{
_buckets = (await Client.ListBucketsAsync()).ToList();
_bucket = _buckets.FirstOrDefault();
}
catch (Exception ex)
{
Snackbar.Add($"Buckets konnten nicht geladen werden: {ex.Message}", Severity.Error);
}
}
private readonly List _messages = new();
private async Task OnFilesSelected(InputFileChangeEventArgs e)
{
if (string.IsNullOrWhiteSpace(_bucket))
{
Snackbar.Add("Bitte zuerst einen Bucket auswählen.", Severity.Warning);
return;
}
foreach (var f in e.GetMultipleFiles())
{
try
{
await Client.UploadAsync(_bucket!, _path, f, StreamLimit);
_messages.Add($"hochgeladen: {f.Name} ({f.Size:N0} Bytes)");
}
catch (Exception ex)
{
_messages.Add($"Fehler bei '{f.Name}': {ex.Message}");
}
}
}
}