Открытие файла потока байтов с помощью asp.net mvc - PullRequest
0 голосов
/ 10 августа 2011

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

, включающий изображение большого пальца файла в страницу aspx, загруженную в iframe.Я хочу открыть файл с помощью диалогового окна «Открыть / Сохранить».Файл загружается в базу данных с типом изображения.Моя страница 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 Ответ

0 голосов
/ 10 августа 2011

Вы не можете использовать 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;
    });
});    
...