你目前正处于脱机状态,正在等待 Internet 重新连接

HOWTO:在 ASP 中读取和显示二进制数据

概要
本文介绍了如何使用 Active Server Pages(动态服务器页)读取和显示二进制数据。

许多开发人员都很欣赏从 Internet Explorer 中用 Scripting.FileSystemObject 打开 ASCII 文件然后在 Microsoft Word 或 Microsoft Excel 中显示其内容这一方式带来的方便性。但是在目前,ASP 未直接提供任何类似的对象用以读取包含二进制数据的文件,如带有宏的 Excel 工作表、Adobe Acrobat (.pdf) 文件、.gif 图像或任何包含二进制数据的其他文件。不过,ASP 开发人员可以编写一个添加此功能的自定义业务对象或组件。
更多信息
“部分 I”提供了接收并接着使用合适的 MIME 类型显示二进制文件的 ASP 代码,“部分 II”显示了如何创建 Visual Basic 5.0(或更新版本)ActiveX DLL 组件,以扩展 ASP 读取二进制数据的能力。

部分 I:打开包含有宏的 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"。

部分 II:Visual Basic 5.0 ActiveX DLL (MyObject.BinRead)

要创建执行二进制读功能的组件,请执行下列步骤:
  1. 在 Visual Basic 5.0 或更新版本中新建 ActiveX DLL 项目。
  2. 将此项目重命名为 MyObject。
  3. 将类模块重命名为 BinRead。
  4. 将以下代码剪切并粘贴到类模块的“General Declarations”部分:
       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. 在“文件”菜单中单击“Make MyObject.dll”。
如果 Web 服务器在与您创建此组件时所在的计算机不同的另一计算机上,则您需要将此组件复制到 Web 服务器并使用 RegSvr32 注册它。

要将“部分 I”中创建的文件合并到具有文本或其他格式的另一个 ASP 页上,请使用服务器端包含语句。
属性

文章 ID:193998 - 上次审阅时间:02/20/2004 13:00:00 - 修订版本: 2.0

Microsoft Visual Basic 5.0 专业版, Microsoft Visual Basic 6.0 专业版, Microsoft Visual Basic 5.0 企业版, Microsoft Visual Basic 6.0 企业版, Microsoft Active Server Pages 4.0

  • kbhowto kbscript kbfso kbcode KB193998
反馈