在iFrame中下载并加载HTML文件

时间:2019-02-05 14:06:16

标签: javascript html asp.net ajax

我正在尝试创建一个文件/文件夹查看器并下载到我将在网页上显示网络共享目录的位置,它将显示共享的所有内容。如果文件是pdf或xls或doc,则将下载,如果其HTML,则将在页面上的iFrame中显示。

我已经完成了第一件事(下载文件),但是无法完成第二部分。在iFrame中显示HTML文件。

当我单击HTML文件时,它会像其他文件一样下载,并且我不确定如何不下载HTML而是显示在屏幕上。

这个想法是将目录显示为KB,其中放置了FAQ文档或页面。

这是我的下载代码。

JavaScript

 $('#container_id').fileTree({
    root: '<network path to load files from>',
    expandSpeed: 1000,
    collapseSpeed: 1000,
    multiFolder: true
}, function(file) {

    $("#iframe").attr("src", "/dl.aspx?file=" + file);
    $('#iframe').load();
});

HTML

<div class="example">
    <h2>File List</h2>
    <div id="container_id" class="demo"></div>
    <iframe id="iframe" style="display:none;"></iframe>
</div>

CS

if (Request.QueryString["file"] != null)
{
    string actualFilePath = Request.QueryString["file"].ToString();
    HttpContext.Current.Response.ContentType = "APPLICATION/OCTET-STREAM";
    string filename = Path.GetFileName(actualFilePath);
    String Header = "Attachment; Filename=" + filename;
    HttpContext.Current.Response.AppendHeader("Content-Disposition", Header);
    HttpContext.Current.Response.WriteFile(actualFilePath);
    HttpContext.Current.Response.End();
}

1 个答案:

答案 0 :(得分:0)

也许您根本没有将此$("#iframe").attr("src", "/dl.aspx?file=" + file);用于HTML文件。这样,您可以将dl.aspx文件称为“想要”下载文件。

相反,请检查一下:

  • 如果文件是<> HTML,则执行$("#iframe").attr("src", "/dl.aspx?file=" + file);

  • 如果= HTML执行$("#iframe").attr("src", "file_path/my-html-file.html");