【问题标题】:Open a Byte[] as Image/PDF in a new Tab or window在新选项卡或窗口中将字节 [] 作为图像/PDF 打开
【发布时间】:2013-09-26 16:25:31
【问题描述】:

我可以通过 asp.net C# 中的模拟从另一台服务器访问文件(比如图像或 pdf)。

问题是,这个模拟在另一个库中,文件作为字节数组返回。

现在我想在新选项卡或窗口中打开这个图像/pdf 字节数组。

示例:假设我选择查看“file1.tiff”,请求将转到具有适当凭据的相应服务器以搜索该文件。如果找到文件(主要动机),它将将此“file1.tiff”转换为字节数组(例如缓冲区)并返回此文件。这是由“byte[] image”接收的。现在我想在新选项卡或窗口中打开这个图像来查看,而不是询问“打开保存或取消”对话框。

byte[] image= impFile.ViewFile(fileName);

我已经试过了:

Response.Clear();
Response.ClearContent();
Response.ClearHeaders();
Response.ContentType = "image/tiff";    
Response.AddHeader("content-length", image.Length.ToString());
Response.BinaryWrite(image);
Response.Flush();Response.End();

但它有两个问题:-

  1. 它要求“打开保存或取消”。

  2. 不在新窗口中打开,而是使用为该扩展分配的默认应用程序打开。

【问题讨论】:

    标签: c# asp.net web-applications


    【解决方案1】:

    您可以使用HttpResponse.WriteFile 方法将流直接发送到客户端。将指定文件直接写入HTTP 响应输出流。

    您可以创建IHttpHandler 发送流,从而避免一些页面生命周期,提高性能。这是Link

    【讨论】:

    • 这两个我都用过。我只安装了 Internet Explorer 8,它对我没有任何用处。谢谢..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-02
    • 2019-01-09
    • 2014-02-02
    • 2023-04-01
    • 2013-03-11
    相关资源
    最近更新 更多