| # gif sample - return a image/gif instead of text/html |
| # |
| # this example demonstrates how to use cookies with websh3 |
| # |
| |
| web::command image { |
| |
| set nr [format %2.2d [expr int(rand() * 13)]] |
| |
| # open a file (JPEG is a binary format) |
| set fh [open [file join [web::config document_root] websh images memory $nr.jpg] r] |
| fconfigure $fh -translation binary |
| set img [read $fh] |
| close $fh |
| |
| # set HTTP header to "image/jpeg" instead of "text/html" |
| web::response -set Content-Type image/jpeg |
| |
| # because we return a img, change to binary again |
| fconfigure [web::response] -translation binary |
| |
| # output |
| web::put $img |
| } |
| |
| # produce the page of this sample application |
| proc page {} { |
| |
| web::put "<html><head><title>Image Example</title></head>" |
| web::put "<body bgcolor=\"#FFFFFF\">" |
| |
| # the images: returned by the same app, but a different command |
| web::put "<img src=\"[web::cmdurl image]\" width=\"50\" height=\"50\"\"><br>" |
| web::put "<a href=\"[web::cmdurl default]\">next</a>" |
| # properly close html code |
| web::put "</body></html>" |
| } |
| |
| web::command default { |
| |
| page |
| } |
| |
| # dispatch (see "dispatch_example") |
| web::dispatch |