@page "/upload" @using System @using System.IO @using System.Globalization @using Microsoft.AspNetCore.Hosting @using Microsoft.Extensions.Logging @using System.Linq @using CsvHelper @using CsvHelper.Configuration @using CsvHelper.Configuration.Attributes @*@inject ILogger Logger*@ @inject ILogger Logger @inject IWebHostEnvironment Environment

Upload Files

@if (isLoading) {

Uploading...

} else { } @code { private List loadedFiles = new(); private long maxFileSize = 1024 * 15; private int maxAllowedFiles = 3; private bool isLoading; private async Task LoadFiles(InputFileChangeEventArgs e) { isLoading = true; loadedFiles.Clear(); foreach (var file in e.GetMultipleFiles(maxAllowedFiles)) { try { loadedFiles.Add(file); var trustedFileNameForFileStorage = Path.GetRandomFileName(); var path = Path.Combine(Environment.ContentRootPath, Environment.EnvironmentName, "unsafe_uploads", trustedFileNameForFileStorage); await using FileStream fs = new(path, FileMode.Create); await file.OpenReadStream(maxFileSize).CopyToAsync(fs); //using (var csvReader = new CsvReader(fs, CultureInfo.InvariantCulture)); //{ // var records = CsvReader.GetRecords().ToList(); //} } catch (Exception ex) { Logger.LogError("File: {Filename} Error: {Error}", file.Name, ex.Message); } } isLoading = false; } public class RocketLaunch { [Name("flight_number") ] public int FlightNumber { get; set; } [Name("name") ] public string MissionName { get; set; } [Name("launch_date") ] public DateTime LaunchDate { get; set; } [Name("success") ] public bool Succeded { get; set; } [Name("booster_recovered") ] public bool DidLand { get; set; } } }