您目前已離線,請等候您的網際網路重新連線

HOWTO:在 ASP 中讀取與顯示二進位資料

本文曾發行於 CHT193998
結論
本文示範如何使用 Active ServerPage 讀取與顯示二進位資料。

對於可以輕鬆的使用 Scripting.FileSystemObject 以開啟 ASCII 檔,然後從 Internet Explorer 內的 Microsoft Word 或 Microsoft Excel 中顯示其內容,有許多開發人員給予正面的評價。在目前,ASP 並沒有直接提供任何足以相比的物件,以便用來讀取包含二進位資料的檔案,例如包含巨集的 Excel 工作表、Adobe Acrobat (.pdf) 檔案、.gif 影像檔,或是任何其他包含二進位資料的檔案。然而,ASP 的開發人員可以撰寫自訂的商用物件或元件,以加入此功能。
其他相關資訊
第一節所提供的 ASP 程式碼可以使用適當的 MIME 類型,接收二進位檔,然後再顯示出來,而第二節則示範如何建立可擴充 ASP 功能的 Visual Basic 5.0 (或更新版本) ActiveX DLL 元件,以讀取二進位資料。

第一節:可以開啟包含巨集的 Excel 工作表的 ASP 範例



   <%   Response.buffer = TRUE   Response.ContentType = "application/x-msexcel"   Dim vntStream   Set oMyObject = Server.CreateObject("MyObject.BinRead")   vntStream = oMyObject.readBinFile("c:\temp\tempxls.xls")   Response.BinaryWrite(vntStream)   Set oMyObject = Nothing   Response.End   %>

注意:如果是 Acrobat 的檔案,請使用 Response.ContentType= "application/pdf" 來變更 MIME 類型。如果是 .gif 影像檔,請使用 Response.ContentType ="image/gif"。

第二節:Visual Basic 5.0 ActiveX DLL (MyObject.BinRead)



若要建立用來讀取二進位資料的元件,請執行下列步驟:
  1. 在 Visual Basic 5.0 或更新版本中建立新的 ActiveX DLL 專案。
  2. 將此專案重新命名為 MyObject。
  3. 將類別模組重新命名為 BinRead。
  4. 將下面程式碼剪下並貼到類別模組的 [一般宣告] 區段:
       Function readBinFile(ByVal bfilename As String) As Variant          Dim fl As Long          Dim FileNum As Long          Dim binbyte() As Byte          Dim binfilestr As String          On Error GoTo errHandler                    FileNum = FreeFile          Open bfilename For Binary Access Read As #FileNum          fl = FileLen(bfilename)          ReDim binbyte(fl)          Get #FileNum, , binbyte          Close #FileNum          readBinFile = binbyte          Exit Function      errHandler:          Exit Function      End Function
  5. 儲存此專案。
  6. 在 [檔案] 功能表上按一下 [製成 MyObject.dll]。
如果 Web 伺服器所在的電腦和建立此元件所用的電腦不同,您就需要將此元件複製到 Web 伺服器上,並使用 RegSvr32 來註冊此元件。

若要將在第一節中所建立的檔案併入另一個具有文字或其他格式的 ASP 頁面,請使用伺服器端的 include 陳述式。
参考
本文件是根據 Microsoft Knowledgebase 文件編號 Q193998 翻譯的. 若要參考原始英文文件內容, 請至以下網址:

內容

文章識別碼:193998 - 最後檢閱時間:01/23/2004 18:49:00 - 修訂: 1.0

Microsoft Visual Basic 5.0 Professional Edition, Microsoft Visual Basic 6.0 Professional Edition, Microsoft Visual Basic 5.0 Enterprise Edition, Microsoft Visual Basic 6.0 Enterprise Edition, Microsoft Active Server Pages 4.0

  • kbhowto kbasp100 kbasp400 kbvisid600 kbscript kbvbp500 kbgrpdsasp kbfso kbcode kbdsi kbcomt KB193998
意見反應
="https://c.microsoft.com/ms.js">