ASP/vbscript file download issue with Firefox (Fixed myself, resolution inside)

Sphexi

Diamond Member
Feb 22, 2005
7,280
0
0
I have a script that allows me to serve up files from a local drive via a web interface, without having to share the folder to IIS directly (as in not just making them links).

The issue I've run into is that many of these files have spaces in the names, which with Firefox causes the name to be chopped at the first space. So I put in some logic to replace spaces with underscores, works great. Except that the interface I'm having to build this into (not my own) uses a frame, and when my script runs the browser detects duplicate header information, which is a no-no, and blocks it from running. It works great in a single browser window, but not in a frame.

I switched to ASPUpload, as their comp seems to work fine, but it has the issue with the filenames (I can't force it to use my string in the header, it always uses the local filename).

What I'd like is in my code to replace the content length in the head with something else completely, it doesn't seem possible to do that though. I can add a content length, but if it's already there then I get blocked.

Any ideas?

Code:
Sub DownloadFile(file)

	Dim strAbsFile
	Dim strFileExtension
	Dim objFSO
	Dim objFile
	Dim objStream

	Set objFSO = Server.CreateObject("Scripting.FileSystemObject")

	If objFSO.FileExists(file) Then
		Set objFile = objFSO.GetFile(file)
		Response.Clear
		Response.AddHeader "Content-Disposition", "attachment; filename=" & replace(fileName," ","_")
		Response.AddHeader "Content-Length", objFile.Size
		Response.ContentType = "application/octet-stream"
		Set objStream = Server.CreateObject("ADODB.Stream")
		objStream.Open
		objStream.Type = 1
		Response.CharSet = "UTF-8"
		objStream.LoadFromFile(file)
		Response.BinaryWrite(objStream.Read)
		objStream.Close
		Set objStream = Nothing
		Set objFile = Nothing
	Else 
		Response.Clear
		Response.Write("No such file exists.")
	End If
	Set objFSO = Nothing
End Sub
 
Last edited:

Sphexi

Diamond Member
Feb 22, 2005
7,280
0
0
Fixed my own issue, or rather came up with a bit of a roundabout way of doing it instead. I use the ASPUpload comp, but prior to using it I make a copy of the file without spaces (underscores instead), then download that to the user, and then delete it. Works well actually, and the files are all small (under 2MB or so at most), so it's very quick and with testing haven't seen any issues with leftover files sticking around.

Code:
	Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
	If objFSO.FileExists(strPath) then
		objFSO.CopyFile strPath,copyPath
		If objFSO.FileExists(copyPath) then
			Set objUpload = Server.CreateObject("Persits.Upload.1")
			Call objUpload.SendBinary (copyPath,true,"application/octet-stream",true)
			set objUpload = nothing
			objFSO.DeleteFile copyPath
		else
			Response.Clear
			Response.Write "No such file exists."
		end if
	else
		Response.Clear
		Response.Write "No such file exists."
	end if

strPath is the original, copyPath is the one with underscores in the filename instead of spaces.
 
sale-70-410-exam    | Exam-200-125-pdf    | we-sale-70-410-exam    | hot-sale-70-410-exam    | Latest-exam-700-603-Dumps    | Dumps-98-363-exams-date    | Certs-200-125-date    | Dumps-300-075-exams-date    | hot-sale-book-C8010-726-book    | Hot-Sale-200-310-Exam    | Exam-Description-200-310-dumps?    | hot-sale-book-200-125-book    | Latest-Updated-300-209-Exam    | Dumps-210-260-exams-date    | Download-200-125-Exam-PDF    | Exam-Description-300-101-dumps    | Certs-300-101-date    | Hot-Sale-300-075-Exam    | Latest-exam-200-125-Dumps    | Exam-Description-200-125-dumps    | Latest-Updated-300-075-Exam    | hot-sale-book-210-260-book    | Dumps-200-901-exams-date    | Certs-200-901-date    | Latest-exam-1Z0-062-Dumps    | Hot-Sale-1Z0-062-Exam    | Certs-CSSLP-date    | 100%-Pass-70-383-Exams    | Latest-JN0-360-real-exam-questions    | 100%-Pass-4A0-100-Real-Exam-Questions    | Dumps-300-135-exams-date    | Passed-200-105-Tech-Exams    | Latest-Updated-200-310-Exam    | Download-300-070-Exam-PDF    | Hot-Sale-JN0-360-Exam    | 100%-Pass-JN0-360-Exams    | 100%-Pass-JN0-360-Real-Exam-Questions    | Dumps-JN0-360-exams-date    | Exam-Description-1Z0-876-dumps    | Latest-exam-1Z0-876-Dumps    | Dumps-HPE0-Y53-exams-date    | 2017-Latest-HPE0-Y53-Exam    | 100%-Pass-HPE0-Y53-Real-Exam-Questions    | Pass-4A0-100-Exam    | Latest-4A0-100-Questions    | Dumps-98-365-exams-date    | 2017-Latest-98-365-Exam    | 100%-Pass-VCS-254-Exams    | 2017-Latest-VCS-273-Exam    | Dumps-200-355-exams-date    | 2017-Latest-300-320-Exam    | Pass-300-101-Exam    | 100%-Pass-300-115-Exams    |
http://www.portvapes.co.uk/    | http://www.portvapes.co.uk/    |