使用iframe在C#MVC中动态显示PDF

时间:2016-05-29 20:47:27

标签: c# asp.net-mvc pdf iframe razor

我有一个文件按钮来搜索文件。我想获取所选路径并将其显示在iframe中。

<div class="editor-field">
            @Html.TextBox("file", "", new { type = "file" })
</div>

我目前的iframe是:

@Html.AntiForgeryToken()
    <iframe src="@Url.Action("GetPDF")" ; height="1000" ; width="1000";%>'></iframe>

我当前的(静态)GetPDF方法如下:

public FileStreamResult GetPDF()
{

        FileStream fs = new FileStream("D:\\Temp.pdf", FileMode.Open, FileAccess.Read);
        return File(fs, "application/pdf");

}

那么请你帮我一下,告诉我如何将iframe更新为我用编辑器字段选择的Pdf?

1 个答案:

答案 0 :(得分:1)

我相信你的问题已有答案,如下: Display PDF in iframe

编辑1:

    [HttpPost]
    public ActionResult GetPdf(HttpPostedFileBase uploadedPdf)
    {
        // user has selected a file
        if (uploadedPdf!= null && uploadedPdf.ContentLength > 0) 
        {
           //you have the file stream here *uploadedPdf*

            return File(fs, "application/pdf");
        }

        return null;      
    }

为了实现异步文件上传,您可以查看 thisjQueryForm并在文件输入上附加事件。

编辑2: 从流到字节数组的简单方法

using (MemoryStream ms = new MemoryStream()) {
    file.InputStream.CopyTo(ms);
    byte[] array = ms.GetBuffer();
}