Вы устанавливаете заголовок на header("Content-Type: image/jpeg")
Для тестирования позвоните по URL
getpicture.php?fid=1
и посмотрите, что произойдет?
edit: на шаге 5
<?
if(isset($_GET['fid']))
{
// connect to the database
include "connect.php";
// query the server for the picture
$fid = $_GET['fid'];
$query = "SELECT * FROM files WHERE fid = '$fid'";
print $query;
$result = mysql_query($query) or die(mysql_error());
print_r($result);
// define results into variables
$name=mysql_result($result,0,"name");
$size=mysql_result($result,0,"size");
$type=mysql_result($result,0,"type");
$content=mysql_result($result,0,"content");
print "check point 1 => $name, $size, $type, $content";
// give our picture the proper headers...otherwise our page will be confused
header("Content-Disposition: attachment; filename=$name");
header("Content-length: $size");
header("Content-type: $type");
echo $content;
mysql_close();
}else{
die("No file ID given...");
}
?>
Замените вышеуказанным кодом и позвоните из браузера и посмотрите, что его печатает?