【问题标题】:MVC 5 - jQuery - Displaying FileContentResult Without DownloadingMVC 5 - jQuery - 在不下载的情况下显示 FileContentResult
【发布时间】:2018-06-29 21:07:25
【问题描述】:
我试图在object 标记中显示FileContentResult MVC 操作的结果。我可以轻松地显示具有预览选项的文件; .txt、.pdf、.jpg 等。当存在没有预览选项的文件时,问题就出现了。
我的问题不在于确定哪种类型的文件有效,我的问题在于如何阻止它们下载(或尝试下载)。
我尝试制作 ajax调用来获取文件,我可以这样做,但之后我不知道如何显示它。
任何提示或想法?这是我从 jquery 调用中返回的对象。
它本质上只是 mimetype、名称和字节数组。这是 MVC 中对象的快照:
这似乎并不像看起来那么难。我只是错过了一些明显的东西吗?
谢谢!
【问题讨论】:
标签:
javascript
jquery
asp.net
ajax
asp.net-mvc
【解决方案1】:
我意识到我可以做些什么来解决这个问题,我不会提交这个作为答案,以防其他人真的对如何解决这个问题有想法。
我认为我的解决方案是不言自明的,但我会详细介绍一下。
public ActionResult GetFile()
{
HBSFile file = new Common.Business.FileIO.FileIO(Server.MapPath("~/Content/Images"), "testdoc.docx").Read();
if (file.CanBePreviewed)
{
return File(file.Stream, file.ContentType);//, file.FileName + "." + file.Extension);
}
return null;
//return Json(new Test(File(file.Stream, file.ContentType, file.FileName + "." + file.Extension), file.CanBePreviewed), JsonRequestBehavior.AllowGet);
}
HBSFile 对象只是文件的属性。 file.Stream 是一个字节数组。
为了解决我的问题,我只是检查文件是否可以预览。如果可以,我会返回FileContentResult。