2017-06-21 8 views
4

Image编译错误试图保存图像.NET的核心 - 参数类型“System.IO.FileStream”是不能分配给参数类型“System.IO.Stream”

[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's 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)); 
    } 

我得到一个编译错误试图保存图像.NET Core -

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

这是为什么?我应该使用另一个Streamwriter吗?我不确定是否缺少包裹?

.csproj的引用:

<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元顶:

#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 
+2

向我们展示你的.csproj文件的参考部分。此外,如果您右键单击并查看新文件流中的元数据(“请致电并向我们显示新窗口顶部的注释部分中的文本 –

+0

@ScottChamberlain我已更新该问题,谢谢! – Lindeberg

+0

你使用Resharper?你能告诉我们它的版本吗? – Volkan

回答

4

对于我而言,我有类似的问题。通过将Resharper更新到2017.2 EAP 3版本,它解决了我的问题。如果您还使用ReSharper的,尝试更新它:

下载&安装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"); 
      } 
+0

谢谢,你钉了它! 我不会尝试EAP,但暂停Resharper消除了错误。 – Lindeberg

相关问题