在网络浏览器中显示文件

本文关键字:显示文件 浏览器 网络 | 更新日期: 2023-09-27 18:36:41

我收到了包含PDF文件的回复

HttpWebResponse res = (HttpWebResponse)HttpWRequest.GetResponse();
Stream pdf = res.GetResponseStream();

我想在网络浏览器上显示此PDF,而不将其保存在文件中。我该怎么做?

在网络浏览器中显示文件

我使用以下代码并且工作正常。

public static void SendDataByteFileToClient(HttpContext context, byte[] data, string fileName, string contentType, bool clearHeaders = true)
        {
            if (clearHeaders)
            {
                context.Response.Clear();
                context.Response.ClearHeaders();
            }
            context.Response.BufferOutput = true;
            context.Response.ContentType = contentType;
            context.Response.AddHeader("Content-Disposition", "inline; filename=" + fileName);
            context.Response.AddHeader("Content-Length", data.Length.ToString());
            if (BrowserHelper.IsOfType(BrowserTypeEnum.IE) && BrowserHelper.Version < 9)
            {
                context.Response.Cache.SetCacheability(HttpCacheability.Private);
                context.Response.Cache.SetMaxAge(TimeSpan.FromMilliseconds(1));
            }
            else
            {
                context.Response.Cache.SetCacheability(HttpCacheability.NoCache);//IE set to not cache
                context.Response.Cache.SetNoStore();//Firefox/Chrome not to cache
                context.Response.Cache.SetExpires(DateTime.UtcNow); //for safe measure expire it immediately
            }
            if (data.Length > 0)
            {
                context.Response.BinaryWrite(data);
            }
            context.Response.End();
        }
HttpWebResponse res = (HttpWebResponse)HttpWRequest.GetResponse();
Stream pdfdata = res.GetResponseStream();
string path = pdfdata.ToString();
    WebClient client = new WebClient();
    Byte[] buffer = client.DownloadData(path);
    if (buffer != null)
    {
        Response.ContentType = "application/pdf";
        Response.AddHeader("content-length", buffer.Length.ToString());
        Response.BinaryWrite(buffer);
        Response.End();
    }