HOWTO: Read and Display Binary Data in ASP
ID: Q193998
|
The information in this article applies to:
-
Microsoft Visual InterDev, versions 1.0, 6.0
-
Microsoft Visual Basic, versions 5.0sp3, 6.0
-
Active Server Pages, versions 1.0, 4.0
SUMMARY
This article shows how to read and display binary data using Active Server
Pages.
Many developers appreciate the ease of using the Scripting.FileSystemObject
to open an ASCII file and then display its contents in Microsoft Word or
Microsoft Excel from within Internet Explorer. In its current inception,
ASP does not directly provide any comparable objects to read files that
contain binary data such as an Excel worksheet with macros, an Adobe
Acrobat (.pdf) file, a .gif image, or any other files that contain binary
data. However, an ASP developer can write a custom business object or
component that adds this functionality.
MORE INFORMATION
Part I provides the ASP code that receives and then displays the binary
file using an appropriate MIME type, and Part II shows how to create the
Visual Basic 5.0 (or later) ActiveX DLL component that extends the
capability of ASP to read binary data.
Part I: ASP Sample That Opens an Excel Worksheet Containing Macros
<%
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
%>
NOTE: For Acrobat files, change the MIME type by using Response.ContentType
= "application/pdf". For a .gif image, use Response.ContentType =
"image/gif".
Part II: The Visual Basic 5.0 ActiveX DLL (MyObject.BinRead)
To create the component that performs the binary read, perform the
following steps:
- Create a new ActiveX DLL project in Visual Basic 5.0 or later.
- Rename the project MyObject.
- Rename the class module BinRead.
- Cut and paste the following code into the General Declarations section
of the class module:
Function readBinFile(ByVal bfilename As String)
Dim fl As Long
Dim binbyte() As Byte
Dim binfilestr As String
On Error GoTo errHandler
Open bfilename For Binary Access Read As #1
fl = FileLen(bfilename)
ReDim binbyte(fl)
Get #1, , binbyte
Close #1
readBinFile = binbyte
Exit Function
errHandler:
Exit Function
End Function
- Save the project.
- On the File menu click Make MyObject.dll.
If your Web server is on a separate machine from where you created the
component, you need to copy the component onto the Web server and register
it using RegSvr32.
To incorporate the file created in Part I into another ASP page that has
text or other formatting, use a server side include statement.
Additional query words:
Keywords : kbcode kbASP100 kbASP400 kbCOMt kbScript kbVBp500 kbVBp600 kbVisID100 kbVisID600 kbGrpASP
Version : WINDOWS:1.0,6.0; :5.0sp3,6.0; winnt:1.0,4.0
Platform : WINDOWS winnt
Issue type : kbhowto