MVC 5 - jQuery - отображение FileContentResult без загрузки - PullRequest
0 голосов
/ 30 июня 2018

Я пытаюсь отобразить результаты действия FileContentResult MVC в теге object. Я могу легко отобразить файлы, которые имеют опцию предварительного просмотра; .txt, .pdf, .jpg и т. д. Проблема возникает, когда есть файлы, у которых нет возможности предварительного просмотра.

Моя проблема не в том, чтобы выяснить, какой тип файлов работает, моя проблема в том, чтобы выяснить, как остановить их загрузку (или попытку загрузки).

Я имею попытался сделать Ajax-вызов, чтобы получить файл, что я могу сделать, но я не знаю, как отобразить его после этого.

Какие-нибудь советы или идеи? Это объект, который я получаю от вызова jquery.
enter image description here
По сути, это просто mimetype, имя и байтовый массив. Вот снимок объекта в MVC:
enter image description here
Это не должно быть так сложно, как кажется. Я что-то упускаю из виду?

Спасибо!

1 Ответ

0 голосов
/ 30 июня 2018

Я понял, что я мог сделать, чтобы обойти эту проблему, я не буду представлять это как ответ, если у других людей действительно есть идеи, как обойти это.

Я думаю, что мое решение довольно очевидно, но я буду вдаваться в некоторые детали.

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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...