首页 > 解决方案 > MVC 5 - jQuery - 在不下载的情况下显示 FileContentResult

问题描述

我正在尝试在标签中显示FileContentResultMVC 操作的结果。object我可以轻松地显示具有预览选项的文件;.txt、.pdf、.jpg 等。当存在没有预览选项的文件时,问题就出现了。

我的问题不是弄清楚哪种类型的文件有效,我的问题是弄清楚如何阻止它们下载(或尝试下载)。

我已经尝试进行 ajax 调用来获取文件,我可以这样做,但我不知道之后如何显示它。

任何提示或想法?这是我从 jquery 调用中得到的对象。它本质上只是 mimetype、名称和字节数组。这是 MVC 中对象的快照:这似乎并不像看起来那么难。我只是错过了一些明显的东西吗?谢谢!
在此处输入图像描述

在此处输入图像描述


标签: javascriptjqueryasp.netajaxasp.net-mvc

解决方案


我意识到我可以做些什么来解决这个问题,我不会提交这个作为答案,以防其他人确实对如何解决这个问题有想法。

我认为我的解决方案是不言自明的,但我会详细介绍一下。

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.


推荐阅读