Compilation error attempting to save a .NET Core image - The argument type "System.IO.FileStream" cannot be assigned to the parameter type "System.IO.Stream"

Picture

  [HttpPost]
    public async Task<IActionResult> Upload(string memberNumber, IFormFile file)
    {
        var uploadsFolderPath = Path.Combine(_host.WebRootPath, "uploads");

        var fileName = Guid.NewGuid() + Path.GetExtension(file.FileName);
        var filePath = Path.Combine(uploadsFolderPath, fileName);

        using (var stream = new FileStream(filePath, FileMode.Create))
        {
             // Here the compilation error
            await file.CopyToAsync(stream);
        }

        var photo = new Photo(fileName);
        var member = _unitOfWork.Members.GetByMemberNumber(memberNumber);
        member.Photo = photo;
        _unitOfWork.Complete();

        return Ok(_mapper.Map<Photo, PhotoResource>(photo));
    }

I get a compilation error trying to save a .NET Core image -

Argument type 'System.IO.FileStream' is not assignable to parameter type 'System.IO.Stream' 

Why? Should I use another streamwriter? I'm not sure if the package is missing?

.csproj links:

  <ItemGroup>
<PackageReference Include="AutoMapper" Version="6.1.0" />
<PackageReference Include="AutoMapper.Extensions.Microsoft.DependencyInjection" Version="2.0.1" />
<PackageReference Include="Microsoft.ApplicationInsights.AspNetCore" Version="2.0.1" />
<PackageReference Include="Microsoft.AspNetCore" Version="1.1.2" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.Cookies" Version="1.1.2" />
<PackageReference Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" Version="1.1.2" />
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="1.1.2" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="1.1.3" />
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="1.1.2" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="1.1.2" PrivateAssets="All" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="1.1.2" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer.Design" Version="1.1.2" PrivateAssets="All" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="1.1.1" PrivateAssets="All" />
<PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="1.1.2" />
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="1.1.2" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="1.1.1" PrivateAssets="All" />
<PackageReference Include="Microsoft.VisualStudio.Web.BrowserLink" Version="1.1.2" />
<PackageReference Include="Newtonsoft.Json" Version="10.0.3" />

        

FileStream metadata above:

#region Assembly System.IO.FileSystem, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a//C:\Users\Leon\.nuget\packages\system.io.filesystem\4.3.0\ref\netstandard1.3\System.IO.FileSystem.dll#endregion
+4
source share
1 answer

In my case, I had a similar problem. Upgrading Resharper to version 2017.2 EAP 3, it solved my problem. If you are also using Resharper, try updating it:

2017.2 EAP 3 https://www.jetbrains.com/resharper/eap/

            [HttpPost]
            public async Task<IActionResult> UploadFile(IFormFile file)
            {
                string filePath = "UploadedFiles/" + Guid.NewGuid() + Path.GetExtension(file.FileName);
                using (var fileStream = new FileStream(filePath, FileMode.Create))
                {
                   await file.CopyToAsync(fileStream);
                }
                return Json("file uploaded successfully");
            }
+4

Source: https://habr.com/ru/post/1679839/


All Articles