Загрузка файла в папку wwwroot в ASP.NET Core - PullRequest
0 голосов
/ 16 января 2019

Почему мои следующие коды иногда работают, но иногда не работают?

 private bool UploadFile(IFormFile ufile, string fname)
 {
     if (ufile.Length > 0)
     {
          string fullpath = Path.Combine(_env.WebRootPath, fname);
          using (var fileStream = new FileStream(fullpath, FileMode.Create))
          {
               ufile.CopyToAsync(fileStream);
          }
          return true;
     }
     return false;
 }

Коду удалось сохранить изображение в папке, которую я создал под wwwroot, но изображение не появляется, даже в Visual Studio.

Есть ли способ ее решить?

Спасибо.

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

Ответы [ 3 ]

0 голосов
/ 16 января 2019

У меня была такая же проблема с ядром dot net, вот что я сделал:

-Сделайте виртуальный каталог

-Попишите его в этот путь к папке (внутри wwwroot)

-Сделайте ваши fullpath равными этому VD;абсолютный путь (можно сохранить в конфигурационном файле)

-дать разрешения на запись для этой папки в iisuser

0 голосов
/ 16 января 2019

разрешить доступ к статическим файлам, просто добавьте эту строку в ваш файл startup.cs в разделе Метод настройки:

app.UseStaticFiles();
0 голосов
/ 16 января 2019

Попробуйте следующим образом. Файл будет загружен в папку images в папке wwwroot.

private async Task<bool> UploadFile(IFormFile ufile)
{
     if (ufile != null && ufile.Length > 0)
     {
          var fileName = Path.GetFileName(ufile.FileName);
          var filePath = Path.Combine(Directory.GetCurrentDirectory(), @"wwwroot\images", fileName);
          using (var fileStream = new FileStream(filePath, FileMode.Create))
          {
              await ufile.CopyToAsync(fileStream);
          }
          return true;
      }
      return false;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...