BinaryWrite over SSL not working in IE

I am trying to have a page that offers a logged in user a text document for download. The text documents are in a password protected folder so the page would log in with the appropriate user to access the folder and then uses a binarywrite to serve up the text document. My code works perfectly in IE in a non secure environment but when I try to do it over SSL, I get the following error when I try to download the text document.

"Internet exlporer cannot download download.asp from

Internet explorer was not able to open this Internet site. The requested site is either unavailable or cannot be found. Please try again later."

It also seems to work in netscape. I really need to be able to offer password protected documents to logged in users so any help would be very much appreciated.

Here is the code I am using:

dim oSecurity
Set oSecurity = Server.CreateObject("SoftArtisans.FileManager")
oSecurity.LogonUser "XXXXXXX", "username", "password"


Dim      objStream
Dim      strDownloadFilename
Dim                strFile
dim                homeDirectory
Dim                strFileType
Dim                contentType

homeDirectory = "theDirectory"

Response.Buffer = True
Dim strFilePath, strFileSize, strFileName

Const adTypeBinary = 1

strFile = Request.QueryString("file")
strDownloadFilename = Request.QueryString("file")

' get full path of specified file
strFilePath = "C:\inetpub\wwwroot\" &  homeDirectory & "\MoM\" & strFile
strFileName = strDownloadFilename


Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Type = adTypeBinary
objStream.LoadFromFile strFilePath

strFileType = lcase(Right(strFileName, 4))

' Feel Free to Add Your Own Content-Types Here
Select Case strFileType
Case ".asf"
ContentType = "video/x-ms-asf"
Case ".avi"
ContentType = "video/avi"
Case ".doc"
ContentType = "application/msword"
Case ".zip"
ContentType = "application/zip"
Case ".xls"
ContentType = "application/"
Case ".gif"
ContentType = "image/gif"
Case ".jpg", "jpeg"
ContentType = "image/jpeg"
Case ".wav"
ContentType = "audio/wav"
Case ".mp3"
ContentType = "audio/mpeg3"
Case ".mpg", "mpeg"
ContentType = "video/mpeg"
Case ".rtf"
ContentType = "application/rtf"
Case ".htm", "html"
ContentType = "text/html"
Case ".asp"
ContentType = "text/asp"
Case Else
'Handle All Other Files
ContentType = "application/octet-stream"
End Select

Response.AddHeader "Content-Disposition", "attachment; filename= " & strFileName
Response.AddHeader "Content-Length", strFileSize
Response.Charset = "UTF-8"
Response.ContentType = ContentType

Response.BinaryWrite objStream.Read

Set objStream = Nothing
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Try this..   I wrote this a very long time ago, however, I dont know if the XML object can load files from the HD..  Iv'e always used it over the web.

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
DEWebWorksAuthor Commented:
It did not work for me. I am getting an access denied error on the objXML.send line. Thanks for the possible solution though.
I wrote something recently after I posted this that pulled files from the HD and sent them down to the client using ADO Stream and the XML Object..   it did it in chunks, which worked out nicely and it was all over SSL.   When I get back to the office, I'll look it up and post a link to my solution..
Here is what I did..    sFile is the path to the file, via directory, not http.  

However I found a problem with this way and no real way around it..  

This will load the file in full before moving to the next step, so if the file is 100MB in size, it's slow.  I searched for a while and there doesnt seem to be a way to pick up the file in chuncks unless I move to .NET.
Set objFSO = CreateObject("Scripting.FileSystemObject")
If objFSO.FileExists(sFile) Then
	Set objFile = objFSO.GetFile(sFile)
	Dim iFileSize
	iFileSize = objFile.Size
  Response.AddHeader "Content-Disposition", "attachment; filename=" & objFile.Name
	Response.AddHeader "Content-Length", iFileSize
	Response.ContentType = "application/octet-stream"
	Set objStream = Server.CreateObject("ADODB.Stream")
	'-- set as binary
	objStream.Type = adTypeBinary
	'-- load into the stream the file
	Dim iChunkSize, iLeft
	iChunkSize = 51200	'-- 50KB
	iLeft = iFileSize
	Do While Not objStream.EOS Or Not Response.IsClientConnected
		'-- send the stream in the response
		If iChunkSize > iLeft Then iChunkSize = iLeft
		iLeft = iLeft - iChunkSize
	Set objStream = Nothing
	Set objFile = Nothing
	Response.write("File does not exist")
End if

Open in new window

It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Visual Basic Classic

From novice to tech pro — start learning today.