On Fri, May 22, 2009 at 11:21 AM, Dee Ayy <dee....@gmail.com> wrote:

> Kyle,
> Well I guess that is good news.  But I don't trust these headers since
> the filename is not being set.  But that was even before this IE
> issue.
> Bastien,
> I don't understand how I could "save the file to the hard disk" from
> IE.  But yes, I save the file (it gets saved as my_php_file.php on the
> hard disk when using FF) which I then rename to my_php_file.pdf, and
> then I open that in a PDF viewer.  But IE claims that the "site is
> either unavailable or cannot be found".

Why are you saving the file first as PHP and then renaming to PDF?
Below is the code that I use (which uses the DOMPDF class from

  createPDF creates a pdf and streams it to the user if FF / O / S or saves
it and forces a download if IE

  $html         -> the html page used to create the content
  $thisFileName -> is the name of the file to be saved
  $hash         -> hash of the user to use as the path to the save the file
function createPDF($html,$thisFileName,$hash)


// Turn off all error reporting

$dompdf = new DOMPDF();

// The next call will store the entire PDF as a string in $pdf

  $pdf = $dompdf->output();

// You can now write $pdf to disk, store it in a database or stream it
// to the client.

//check if IE,since it doesn't like the stream, so we save it to disk and
then stream the saved file
  $browserCheck = browserDetection();

  if ($browserCheck)
  if (!is_dir("../data/$hash"))
  } // end is_dir check

      // save the file
      if(!file_put_contents("../data/$hash/$thisFileName", $pdf))
    echo "failed to write new pdf file";
         // output to the browser
  }// if user agent
}//end function createPDF

function browserDetection()
 $SF = strstr($UA, 'Safari') ? true : false;
 $OP = strstr($UA, 'Opera') ? true : false;
$OPV = $OP ? preg_split('/opera\//i', $UA) : false;
$OPV = $OPV ? floatval($OPV[1]) : false;
 $FF = !$OP && strstr($UA, 'Firefox') ? true : false;
$FFV = $FF ? preg_split('/firefox\//i', $UA) : false;
$FFV = $FFV ? floatval($FFV[1]) : false;
 $IE = !$OP && !$FF && strstr($UA, 'MSIE') ? true : false;
$IEV = $IE ? preg_split('/msie/i', $UA) : false;
$IEV = $IEV ? floatval($IEV[1]) : false;
 if ($IE){
  return true;
  return false;

}//end function broswerDetection

function showPDF($file)
$name = basename($file);
     header("Cache-Control: maxage=1"); //In seconds
    header("Pragma: public");
 // We'll be outputting a PDF
header('Content-type: application/pdf');
 // It will be called $name.pdf
header('Content-Disposition: attachment; filename="$name"');
 // The PDF source is in original.pdf

}//end function showPDF



Cat, the other other white meat

Reply via email to