我从数据库领域获取物理文件变得疯狂。我使用asp.net MVC项目(dotnet核心1.1)。感谢avance和快乐的Christams!
在我的控制器的某些部分:
public void Download(int id)
{
downloadMyFile(_context.myTable.Find(id).MyBLOBField,
_context.myTable.Find(id).MyFieldContentType,
_context.Richieste.Find(id).MyFieldOriginalFileName
);
}
public FileContentResult downloadMyFile(byte[] fileBytes,
string fileContent, string fileName)
{
return File(fileBytes, fileContent, fileName);
}
我的观点:
<a asp-action="Download" asp-route-id="@Model.Id"> Download File</a>
**
我的笔记:
如果我使用它,可以工作:
public FileResult download()
{
var fileName = @"myRealFileNameStoredInTheServer.ext";
var filepath = $"Downloads/{fileName}";
byte[] fileBytes = System.IO.File.ReadAllBytes(filepath);
return File(fileBytes, "application/x-msdownload", fileName);
}
但是,当另一个阵列从另一个阵列不工作时,
我也尝试使用Response方法,但是我无法在ASPNET CORE重载的Response上找到BinaryWrite()...也没有使用MemoryStream! 你能帮帮我吗?
答案 0 :(得分:0)
阅读Stephen Muecke的评论,了解我的观点 问题。
public FileContentResult Download(int id)
{
return File(_context.myTable.Find(id).MyBLOBField,
_context.myTable.Find(id).MyFieldContentType,
_context.Richieste.Find(id).MyFieldOriginalFileName
);
}