Well, first off, you might try taking the object references out of the string and concatenate them, like so:
eval('$image = ' . $functionArray[$type] . '(actual_path($this->locationPath . "/" . $this->fileName));');
Also, perhaps a forced Content-Disposition would stop browsers from popping up a download box?
header('Content-Disposition: inline');
EDIT: Also, have you turned on display_errors and set error_reporting to E_ALL ? If you accept the "download" does the file contain any errors, or is it just the image data?