Не удается загрузить файл Blazor в файл загрузки - PullRequest
0 голосов
/ 03 февраля 2020

У меня есть приложение Blazor, где я использую BlazorInputFile с этого сайта - https://blog.stevensanderson.com/2019/09/13/blazor-inputfile/ однако страница загружает его только в поток памяти, а не копирует файл в папку на сервере. Мне нужно его скопировать в папку на сервере.

<div class="form-group">
    <label for="taskName">Feature Image</label>
    <InputFile OnChange="HandleFileSelected" />
</div>

@code {

IFileListEntry file;

void HandleFileSelected(IFileListEntry[] files)
{
    file = files.FirstOrDefault();
}

async Task CountLines()
{
    numLines = 0;
    using (var reader = new System.IO.StreamReader(file.Data))
    {
        while (await reader.ReadLineAsync() != null)
        {
            numLines++;
        }
    }
}

async Task UploadFile()
{
    if (file != null)
    {
        var path = System.IO.Path.Combine(Server.MapPath("~/Uploads/"));
        string pathstring = System.IO.Path.Combine(path.ToString());
        string filename1 = Guid.NewGuid() + System.IO.Path.GetExtension(file.Name);
        bool isexists = System.IO.Directory.Exists(path);
        if (!isexists)
        {
            System.IO.Directory.CreateDirectory(pathstring);
        }
        string uploadpath = pathstring + "\\" + filename1;
        file.SaveAs(uploadpath);
    }
}

В приведенном выше коде я создал метод UploadFile и использовал свой обычный способ загрузки файлов, но, очевидно, он не будет работать, потому что IFileListEntry не имеет метод SaveAs и Сервер не будут работать на Blazor.

Как мне лучше всего загрузить этот файл на сервер, пожалуйста? (Метод UploadFile будет вызываться при отправке формы).

1 Ответ

0 голосов
/ 03 февраля 2020

Вот еще один пакет и пример проекта, в котором используется файл ввода Стива Сандерсона Блазора:

(Отказ от ответственности: это мой проект и пакет Nuget)

https://github.com/DataJuggler/BlazorFileUpload

В каталоге Samples находится пример проекта.

Пакет Nuget: DataJuggler.Blazor.FileUpload

И видео здесь: https://youtu.be/Hj_k90mifSQ

Бесплатный код не является СПАМОМ. Если это поможет одному человеку, это моя цель.

...