Открытие файла потока байтов с помощью asp.net mvc

Я мое приложение asp.net MVC У меня есть

  • вложение большого пальца изображения файла в aspx-страницу, загруженную в iframe. Я хочу открыть файл с помощью диалогового окна Open/Save. Файл загружается в базу данных с типом изображения. Моя страница aspx содержит следующий HTML:

    <li class="thumpimage">
                            <%=Html.Hidden("attachmtId", item.ILDAttachmentId) %>
                            <img src="<%=imgurl %>" alt="test" height="81" width="76" />
                            <span class="thumb_descrp">
                                <%=item.ILDAttachmentName %></span></li>
    

    JQuery часть выглядит следующим образом

    $(document).ready(function() {
    
            $(".thumpimage").click(function() {
                var attchmtId = $("#attachmtId").val();
                alert(attchmtId);
                $.post('/Instruction/OpenInstnDoc', { attchId: attchmtId });
            });
        });
    

    И функция в контроллере есть

     public ActionResult OpenInstnDoc(int attchId)
        {
    
            Attachment objAttach = new Attachment();
            objAttach = objAttach.GetAttachmentById(attchId);
    
            byte[] theData = objAttach.BinaryFile;
            Response.AddHeader("content-length", theData.Length.ToString());
            Response.AddHeader("content-disposition", "inline; filename=" + objAttach.AttachmentName + "");
            return File(theData, objAttach.MineType);
        }
    

    Я не могу открыть файл. Может ли кто-нибудь помочь мне в этом?

  • 1 ответ

    Решение

    Вы не можете использовать ajax для потоковой передачи содержимого файла в браузер и ожидать появления диалогового окна открытия / сохранения файла. Вместо вызова $.post попробуйте

    $(document).ready(function() {
    
        $(".thumpimage").click(function() {
            var attchmtId = $("#attachmtId").val();
            alert(attchmtId);
            //$.post('/Instruction/OpenInstnDoc', { attchId: attchmtId });
            window.location.href = "/Instruction/OpenInstnDoc/" + attchmtId;
        });
    });    
    
    Другие вопросы по тегам