Re: php downlaod script

From: Date: Tue, 25 Sep 2007 13:38:35 +0000
Subject: Re: php downlaod script
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-262451@lists.php.net to get a copy of this message
Hi Hulf, Just looking at it, I'm not sure why it's not working. But here is the script I use for exporting database files to excel: <?PHP $sortOrder = $_SESSION['order']; $search = $_SESSION['search']; $select = "SELECT * FROM ".$table." WHERE FName like '%".$search."%' or LName like '%".$search."%' or Add1 like '%".$search."%' or Add2 like '%".$search."%' or City like '%".$search."%' or State like '%".$search."%' or Zip like '%".$search."%' or XCode like '%".$search."%' order by ".$sortOrder.""; $export = mysql_query($select); $fields = mysql_num_fields($export); for ($i = 0; $i < $fields; $i++) { $header .= mysql_field_name($export, $i) . "\t"; } while($row = mysql_fetch_row($export)) { $line = ''; foreach($row as $value) { if ((!isset($value)) or ($value == "")) { $value = "\t"; } else { $value = str_replace('"', '""', $value); $value = '"' . $value . '"' . "\t"; } $line .= $value; } $data .= trim($line). "\n"; } $data = str_replace("\r", "", $data); if ($data =="") { $data ="\n(0) Records Found!\n"; } header("Content-type: application/x-msdownload"); header("Content-Disposition: attachment; filename=Export.xls"); header("Pragma: no-cache"); header("Expires: 0"); print "$header\n$data"; ?> On Sep 25, 2007, at 9:22 AM, Hulf wrote:
My download script only gives me empty (0kb) xls files. They are being uploaded as blobs and seem ok. Can someone shed some light on why the downoad is not working. Many Thanks, R. <?php if(isset($_GET['id'])) { // if id is set then get the file with the id from database
$id    = $_GET['id'];
$query = "SELECT id, file_name, size, type, content FROM results WHERE id =
'$id'"; $result = mysql_query($query) or die(mysql_error()); list($id, $file_name, $type, $size, $content) = mysql_fetch_array($result); header("Content-Type: application/vnd.ms-excel"); header("Content-Disposition: attachment; filename=$file_name"); header("Content-Length: ".filesize($size)); header("Accept-Ranges: bytes"); header("Pragma: no-cache"); header("Expires: 0"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Content-transfer-encoding: binary");
Just out of my own curiosity, What does the Content-Length and Accept-Ranges do?
exit; } ?>
Also, when I was trying to get mine working, I commented out all the header calls so it would print the results on the page so I didn't end up with 500 excel spreadsheets on my desktop. -- Jason Pruim Raoset Inc. Technology Manager MQC Specialist 3251 132nd ave Holland, MI, 49424 www.raoset.com japruim@raoset.com

« previous php.general (#262451) next »