我在asp.net mvc-5中使用实体框架,我提供了上传存储在SQL Server中的文件作为FILESTREAM的功能(文件不存储在文件夹中,但其内容作为数据库表中的字节数组)。现在我想从数据库中获取这些文件并使它们出现在视图中(可以有一个链接作为文件名,您可以单击它,它将开始下载过程)。此外,表中有列分别保存文件名,文件扩展名及其内容。 我将为您提供上传的模型和控制器,以便您了解我是如何做到的:
public class File
{
[Key]
public int fileId{ get; set; }
[Required]
public byte[] fileContent{ get; set; }
public string fileUrl { get; set; }
public string fileExtension{ get; set; }
public string fileName{ get; set; }
}
[HttpPost]
public ActionResult UploadFile([Bind(Include = "Title, File")] FileViewModel
fileModel)
{
if (ModelState.IsValid)
{
var fileData = new MemoryStream();
fileModel.File.InputStream.CopyTo(fileData);
string name = Path.GetFileName(fileModel.File.FileName);
string extension= Path.GetExtension(fileModel.File.FileName);
var file = new FileModel { fileName = name,
fileExtension= extension, fileContent= fileData.ToArray() };
_context.File.Add(file);
_context.SaveChanges();
return RedirectToAction("UploadFile");
}
return View(fileModel);
}
我试图寻找答案,但每个回复都做了我不需要的事情。我已经查看了FileStreamResult,但从这个角度来看,我无法满足我的需求。
答案 0 :(得分:0)
试试下载文件。
var fileanme ="your filename with path";
var fileBytes = System.IO.File.ReadAllBytes(fileanme);
Response.AppendHeader("Content-Disposition", "inline; filename='abc.pdf'");
return File(fileBytes, "application/pdf");