首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# Visio 二次開發:Web 端檢視 Visio 圖紙(三)——動態串流輸出 Visio 檔案實現

     編輯:關於C語言

架構設計:動態產生 Visio 檔案串流

資料庫儲存二進位 Visio 檔案,Web 端透過專用頁面 VisioFile.aspx 讀取並輸出串流,供 Visio Viewer ActiveX 控制項載入。

VisioFile.aspx 核心代碼


private void Page_Load(object sender, System.EventArgs e)
{
    string VisioID = Request.QueryString["VisioID"];
    if (VisioID != null)
    {
        VisioImageRelease VisioImage = new VisioImageRelease();
        using (IDataReader dr = VisioImage.GetByVisioID(VisioID))
        {
            dr.Read();
            byte[] visioImage = (byte[])dr["visioImage"];
            OutputVisioFile(visioImage);
        }
    }
}

private void OutputVisioFile(byte[] visioFile)
{
    Response.ContentType = "application/vnd.ms-visio.viewer";
    Response.OutputStream.Write(visioFile, 0, visioFile.Length);
    Response.Flush();
    Response.End();
}

關鍵技術點

  • ContentType 關鍵:application/vnd.ms-visio.viewer 觸發 Visio Viewer ActiveX 載入
  • 二進位直輸:Response.OutputStream.Write 避免文字編碼損壞
  • 即時結束:Response.End() 防止後續 HTML 污染串流
  • 查詢參數:VisioID 關聯資料庫記錄
  • 資源釋放:using 確保 IDataReader 正確關閉

完整鏈路

  1. 容器頁面 VisioContainer.aspx 載入 Viewer ActiveX
  2. JavaScript 設定 Viewer1.src = 'VisioFile.aspx?VisioID=xxx'
  3. Viewer 發起 HTTP GET 請求
  4. VisioFile.aspx 讀取資料庫 → 輸出二進位串流
  5. Viewer 在瀏覽器中渲染 Visio 圖面
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved