|
Posted by Tom Rogers on 03/25/05 03:30
Hi,
Friday, March 25, 2005, 3:27:41 AM, you wrote:
WS> Hello,
WS> I really can't figure this out. Can someone help please. I've wasted hours
WS> already with this one.
WS> I'm trying to print image to a web page using fpassthru. Here's the code:
WS> $name = path/to/the/image/folder/img1.jpeg;
WS> $fp = fopen($name, 'rb');
WS> // send the right headers
WS> header("Content-Type: image/jpeg"); //also tested with type pjpeg
WS> header("Content-Length: " . filesize($name));
WS> // dump the picture
WS> fpassthru($fp);
WS> Help Appeciated. Thanks.
WS> -Will
Make sure you don't have any whitespace after the trailing ?> if there
is one, better still get rid of it.
Also I use readfile($name); ... can't remember why
Here is a bit of code I use for passing PDF files which also handles
caching control you can adapt easily for images.
<?php
$cache_time = false;
$requested_time = false;
$filename = $_REQUEST{'filename'];
if(file_exists($filename)){
$len = filesize[$filename);
$mtime = filemtime($filename);
$cache_time = gmdate('D, d M Y H:i:s', $mtime) . ' GMT';
header('Last-Modified: '.$cache_time);
$rt = false;
if(isset($_SERVER['HTTP_IF_MODIFIED_SINCE'])){
$rt = $_SERVER['HTTP_IF_MODIFIED_SINCE'];
}
if($rt) $requested_time = strtotime($rt);
if($requested_time && $cache_time){
if($requested_time == $cache_time){
Header($_SERVER['SERVER_PROTOCOL'].' 304 Not Modified');
exit;
}
}
header("Accept-Ranges: bytes");
header('Cache-Control: no-cache, must-revalidate');
header("Content-type: application/pdf");
header("Content-Length: $len");
readfile($filename);
}
--
regards,
Tom
Navigation:
[Reply to this message]
|