将文件上传到ASP.NET Core中的wwwroot文件夹

时间:2019-01-16 04:27:13

标签: c# asp.net-core

为什么我的以下代码有时有效,但有时却无效?

 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 :(得分:2)

尝试如下。文件将上传到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 fileSrteam = new FileStream(filePath, FileMode.Create))
          {
              await ufile.CopyToAsync(fileSrteam);
          }
          return true;
      }
      return false;
}

答案 1 :(得分:0)

点网核心也有同样的问题,这是我所做的:

-创建虚拟目录

-将其映射到该文件夹​​路径(在wwwroot内部)

-使您的fullpath等于此VD;绝对路径(可以将其保存在配置文件中)

-将此文件夹的写入权限授予iisuser

答案 2 :(得分:0)

允许访问静态文件,只需在配置方法下的startup.cs文件中添加以下行:

BookListViewController