At 17:40 11.03.2003, Doug Coning said: --------------------[snip]-------------------- >header('Content-Type: image/jpeg'); >$im = imagecreatefromjpeg("001_SM77GR.jpg"); >imagejpeg($im,'',85); >imagedestroy($im); > >I copied this code from PHP.net. However, when I run the above code, it >doesn't download the image, it just shows the image in the browser. I'm >using IE 6 for my browser. > >How I get PHP to download this image? --------------------[snip]--------------------
To have a browser handling data it receives as downloadable file you must set a Content-Type it cannot handle inline, and specify a disposition and filename, such as: Content-Type: application/octet-stream Content-Disposition: attachment;filename="myfile.jpg" Content-Length: 1234 Note that it is always a good idea to tell the browser the size of a file it is about to receive. Since imagejpeg() outputs the stream directly and doesn't giv you any size information, you may use output buffering to obtain the stream, like: ob_start(); imagejpeg($im, '', 85); $image_size = ob_get_length(); $imgstream = ob_get_contents(); ob_end_clean(); // continue as outlined above header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment;filename="myfile.jpg"'); header('Content-Length: ' . $image_size); echo $imgstream; exit; -- >O Ernest E. Vogelsinger (\) ICQ #13394035 ^ http://www.vogelsinger.at/ -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php