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

Mat*_*att 3 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;
 }
Run Code Online (Sandbox Code Playgroud)

代码确实设法将图片保存到我在下创建的文件夹中wwwroot,但是图片没有出现,甚至在Visual Studio中也没有出现。

有办法解决吗?

谢谢。

即使打开存储图片的文件夹的文件浏览器,图片也好像在那里但没有显示任何图像。

Tan*_*jel 5

尝试如下。文件将被上传到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;
}
Run Code Online (Sandbox Code Playgroud)

  • 请不要在代码中使用“Directory.GetCurrentDirectory()”。使用托管环境来检索内容根目录的位置。 (2认同)