使用asp.net mvc打开字节流文件

发布于 2024-11-28 19:43:44 字数 1247 浏览 1 评论 0原文

在我的 asp.net mvc 应用程序中,我将

  • 文件的缩略图包含在 iframe 中加载的 aspx 页面中。我想使用“打开/保存”对话框打开该文件。文件以图像数据类型上传到数据库。 我的 aspx 页面中有以下 html:

  • <%=Html.Hidden("attachmtId", item.ILDAttachmentId) %> “测试”高度=“81”宽度=“76”/ <%=item.ILDAttachmentName %>
  • jquery部分如下

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

    控制器中的函数是

     public ActionResult OpenInstnDoc(int attchId)
        {
    
            附件 objAttach = new Attachment();
            objAttach = objAttach.GetAttachmentById(attchId);
    
            byte[] theData = objAttach.BinaryFile;
            Response.AddHeader("内容长度", theData.Length.ToString());
            Response.AddHeader("content-disposition", "inline; filename=" + objAttach.AttachmentName + "");
            返回文件(theData,objAttach.MineType);
        }
    

    我无法打开该文件。谁能帮我解决这个问题吗?

  • Im my asp.net mvc application I have a

  • enclosing the thumb image of the file in an aspx page loaded in an iframe. I want to open the file with an Open/Save dialogbox. The file is uploaded to the database in image datatype.
    My aspx page has the following html in it:

    <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>
    

    The jquery part is as follows

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

    And the function in the controller is

     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);
        }
    

    I am not able open the file. Can anyone help me on this?

  • 如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

    扫码二维码加入Web技术交流群

    发布评论

    需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

    评论(1

    找个人就嫁了吧 2024-12-05 19:43:45

    您无法使用 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;
        });
    });    
    

    You cannot use ajax to stream file content to the browser and expect to be prompted with a file open/save dialog. Instead of the call to $.post, try

    $(document).ready(function() {
    
        $(".thumpimage").click(function() {
            var attchmtId = $("#attachmtId").val();
            alert(attchmtId);
            //$.post('/Instruction/OpenInstnDoc', { attchId: attchmtId });
            window.location.href = "/Instruction/OpenInstnDoc/" + attchmtId;
        });
    });    
    
    ~没有更多了~
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文