Code archives/Networking/HTTP FileSize() and more
This code has been declared by its author to be Public Domain code.
Download source code
| |||||
| This was written in answer to a forum post. I'm putting it here as it may be of use to others. | |||||
Print HTTPFileSize("http://www.google.co.uk/intl/en_uk/images/logo.gif") + " Bytes"
End
Function HTTPFileSize(url$)
url$ = url$.Replace("http://", "")
Local slashPos = url$.Find("/"), host$, file$
If slashPos <> -1
host$ = url$[..slashPos]
file$ = url$[slashPos..]
Else
Return -1
EndIf
Local stream:TStream = OpenStream("tcp::" + host$)
If Not stream Then Return -1
stream.WriteLine "HEAD " + file$ + " HTTP/1.0"
stream.WriteLine "Host: " + host$
stream.WriteLine ""
While Not Eof(stream)
Local in$ = stream.ReadLine()
If in$.Find("Content-Length:") <> -1
stream.Close()
Return Int(in$[in$.Find(":") + 1..].Trim())
EndIf
Wend
stream.Close()
Return -1
End Function |
Comments
| ||
| Meet more of the family... Returns the HTTP header. Download a file with a progress bar (not really useful for anything, more of an example). |
| ||
| Another version with progressive download : |
Code Archives Forum