0
データベースフィールドから物理ファイルを取得するのに夢中になりました。私はasp.net MVCプロジェクト(dotnetコア1.1)を使用します。 avanceとHappy Christamsに感謝します!私CONTROLLERの一部で[dotnet core MVC]、バイト配列(データベースに格納されたフィールド)からファイルを取得できません。
:
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);
}
マイVIEW:
<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);
}
が、別のバイト配列からPASSバイト配列は
I動作しません私もResponseメソッドを使用しようとしましたが、ResponseのASPNET COREオーバーロードでBinaryWrite()を見つけることができません...何もありませんg MemoryStream! 私を助けることができます.. ..?
あなたの方法は、 'void'です - あなたは解決策を持っていますか、それは何も –
を返さないのですか? –
'downloadMyFile()' - 'return downloadMyFile(.....);の結果を返すように' public FileContentResult Download(int id) 'にして(他のメソッドを' private'にしてください)、 –