Blazor - не удается сохранить файл в папке wwwroot/img - PullRequest
0 голосов
/ 03 апреля 2020

Я работаю над приложением Blazor и не могу сохранить файл в wwwroot/img. Может кто-нибудь помочь, пожалуйста. Хотел понять поведение, я могу увидеть сообщение об успешном завершении (Файл скопирован.) На консоли, но не могу увидеть файл в папке.

Попробую другие альтернативы, но опубликую его, чтобы понять, почему даже после успешного выполнения файла не сохраняется.

КОМПОНЕНТ БРИТВЫ

    <InputFile OnChange="HandleFileSelected" />

ЧАСТЬ КОДА

    private async Task<bool> HandleFileSelected(IFileListEntry[] files)
    {
        try
        {
            IFileListEntry ufile = files.FirstOrDefault();

            if (ufile != null && ufile.Size > 0)
            {
                var fileName = Path.GetFileName(ufile.Name);
                var filePath = @"ProjectPath\wwwroot\img\"+ fileName; //ProjectPath -- path here

                using (var fileStream = new FileStream(filePath, FileMode.Create))
                {
                    await ufile.Data.CopyToAsync(fileStream);
                    Console.WriteLine("File copied.");
                }
                return true;
            }
            return false;
        }
        catch (Exception ex)
        {
            Console.WriteLine("Error "+ ex.Message);
            return false;
        }
    }

СООБЩЕНИЕ КОНСОЛИ

WASM: Файл скопирован. // Физически файл не скопирован по пути.

1 Ответ

1 голос
/ 03 апреля 2020

Поскольку Blazor WASM, как и любое другое приложение SPA. Приложение работает не на сервере, а в клиентском веб-браузере. Вот почему файл не сохраняется на сервере. Если вы хотите сохранить файл на сервере, вам нужно связаться с сервером через что-то вроде API.

Ниже приведен пример загрузки файлов с использованием WASM: https://remibou.github.io/Upload-file-with-Blazor/

...