|
<? /* ปรับปรุง : 2549-06-01 ประกอบด้วย uploadpage.htm, uploadprocess.php และ download.php Source from http://php.dreamwerx.net/forums/viewtopic.php?t=6 Download script.. streams data from a mysql database, thru the webserver to a client browser */ if (isset($_GET["id"])) { $Storage_IP = "localhost"; $Storage_Port = 3306; $Storage_User = "root"; $Storage_Passwd = ""; $Storage_DB = "test"; $connectto = $Storage_IP . ":" . $Storage_Port; if (!$linkid = @mysql_connect($connectto, $Storage_User, $Storage_Passwd)) { die("Unable to connect to storage server!"); } if (!mysql_select_db($Storage_DB, $linkid)) { die("Unable to connect to storage database!"); } $nodelist = array(); // Pull file meta-data $SQL = "select * from file where id = " . $_GET["id"]; if (!$RES = mysql_query($SQL, $linkid)) { die("Failure to retrive file metadata"); } if (mysql_num_rows($RES) != 1) { die("Not a valid file id!"); } $FileObj = mysql_fetch_object($RES); // Pull the list of file inodes $SQL = "SELECT id FROM filedata WHERE masterid = " . $_GET["id"] . " order by id"; if (!$RES = mysql_query($SQL, $linkid)) { die("Failure to retrive list of file inodes"); } while ($CUR = mysql_fetch_object($RES)) { $nodelist[] = $CUR->id; } // Send down the header to the client Header ( "Content-Type: $FileObj->datatype" ); Header ( "Content-Length: " . $FileObj->size ); Header ( "Content-Disposition: attachment; filename=$FileObj->name" ); // Loop thru and stream the nodes 1 by 1 for ($Z = 0 ; $Z < count($nodelist) ; $Z++) { $SQL = "select filedata from filedata where id = " . $nodelist[$Z]; if (!$RESX = mysql_query($SQL, $linkid)) { die("Failure to retrive file node data"); } $DataObj = mysql_fetch_object($RESX); echo $DataObj->filedata; } } else { echo "<form action=download.php method=get><input name=id value=1><input type=submit></form>"; } ?> |