Sometimes you want to download a file that's available by HTTP, but that filename isn't part of the URL. Instead, it's put in the metadata (SourceForge does this with tracker attachments). Here's how to download the file with the right name:
package require Tcl 8.5 package require http 2 proc filegrab url { set token [http::geturl $url -validate 1] upvar #0 $token head set cd [dict get $head(meta) Content-Disposition] if {![regexp {^attachment; filename=([^ /]+)} $cd -> filename]} { http::cleanup $token return -code error "no file available" } http::cleanup $token set f [open $filename {WRONLY CREAT EXCL}] set token [http::geturl $url -channel $f] http::cleanup $token close $f }