I'm just trying to get the code to work, so my examples may seem a bit basic. Anyway, I have created an HTML form that calls UPLOAD.PHP and it dumps the file into MySQL with no problem. When I run DOWNLOAD.PHP with the file id at the end, it will grab the file, but rename something like TEST.DOC with document.doc. If it's an Excel file, it could be TEST.XLS and I get download.xls. Why do I keep getting the file name replaced with "download".proper_extension?
UPLOAD FORM:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Baseline Document Upload Utility</title>
<style type="text/css">
<!--
body,td,th,input,select,option {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 11px;
}
-->
</style></head>
<body>
<form method="post" action="upload.php" enctype="multipart/form-data">
<table border="0" align="center" cellpadding="0" cellspacing="2">
<tr>
<td colspan="4">Please enter your new baseline document information.</td>
</tr>
<tr>
<td colspan="4"> </td>
</tr>
<tr>
<td colspan="4" bgcolor="#E0DFE3">Select baseline document to upload</td>
</tr>
<tr>
<td width="25%"><div align="right">Description:</div></td>
<td colspan="3"><input type="text" name="form_description" size="40" />
<input type="hidden" name="MAX_FILE_SIZE" value="1000000" /></td>
</tr>
<tr>
<td> <div align="right">File to upload:<br />
</div></td>
<td colspan="3"><input type="file" name="form_data" size="40" /></td>
</tr>
<tr>
<td colspan="4" bgcolor="#E0DFE3">Enter baseline document details </td>
</tr>
<tr>
<td width="25%"><div align="right">Level: </div></td>
<td colspan="3"><select name="doc_level" id="doc_level">
<option selected="selected">User Level</option>
<option>System Level</option>
<option>Segment Level</option>
</select> </td>
</tr>
<tr>
<td width="25%"><div align="right">Sub-Level: </div></td>
<td colspan="3"><label>
<select name="doc_sub_level" id="doc_sub_level">
<option selected="selected"></option>
<option>ITN</option>
<option>III</option>
<option>AFIS</option>
<option>IDWH</option>
<option>EFCON</option>
</select>
</label></td>
</tr>
<tr>
<td width="25%"><div align="right">Name: </div></td>
<td colspan="3"><input name="doc_name" type="text" id="doc_name" value="Test File" /></td>
</tr>
<tr>
<td width="25%"><div align="right">Number: </div></td>
<td width="25%"><input name="doc_num_a" type="text" id="doc_num_a" /></td>
<td width="25%"><div align="right">Number (additional): </div></td>
<td width="25%"><input name="doc_num_b" type="text" id="doc_num_b" /></td>
</tr>
<tr>
<td width="25%"><div align="right">Change: </div></td>
<td width="25%"><input name="doc_change_a" type="text" id="doc_change_a" /></td>
<td width="25%"><div align="right">Change (additional): </div></td>
<td width="25%"><input name="doc_change_b" type="text" id="doc_change_b" /></td>
</tr>
<tr>
<td width="25%"><div align="right">Version: </div></td>
<td width="25%"><input name="doc_version_a" type="text" id="doc_version_a" /></td>
<td width="25%"><div align="right">Version (additional): </div></td>
<td width="25%"><input name="doc_version_b" type="text" id="doc_version_b" /></td>
</tr>
<tr>
<td width="25%"><div align="right">Revision: </div></td>
<td width="25%"><input name="doc_revision_a" type="text" id="doc_revision_a" /></td>
<td width="25%"><div align="right">Revision (additional): </div></td>
<td width="25%"><input name="doc_revision_b" type="text" id="doc_revision_b" /></td>
</tr>
<tr>
<td width="25%"><div align="right">SPCR: </div></td>
<td width="25%"><input name="doc_spcr_a" type="text" id="doc_spcr_a" /></td>
<td width="25%"><div align="right">SPCR (additional): </div></td>
<td width="25%"><input name="doc_spcr_b" type="text" id="doc_spcr_b" /></td>
</tr>
<tr>
<td width="25%"><div align="right">Date: </div></td>
<td width="25%"><input name="doc_date_a" type="text" id="doc_date_a" /></td>
<td width="25%"><div align="right">Date (additional): </div></td>
<td width="25%"><input name="doc_date_b" type="text" id="doc_date_b" /></td>
</tr>
<tr>
<td width="25%"><div align="right">OPR: </div></td>
<td width="25%"><input name="doc_opr" type="text" id="doc_opr" /></td>
<td width="25%"> </td>
<td width="25%"> </td>
</tr>
<tr>
<td width="25%"><div align="right">Priority: </div></td>
<td width="25%"><input name="doc_priority" type="text" id="doc_priority" /></td>
<td width="25%"> </td>
<td width="25%"> </td>
</tr>
<tr>
<td width="25%"><div align="right">Status: </div></td>
<td colspan="3"><select name="doc_status" id="doc_status">
<option>No updates required per IPT</option>
<option>Determined to be current by IPT & ready for delivery</option>
<option>Currently being updated</option>
<option>Updates required</option>
<option>To be created</option>
<option>To be archived</option>
</select></td>
</tr>
<tr>
<td width="25%"><div align="right">Hard Copy Available Only: </div></td>
<td colspan="3"><input name="doc_hard_copy_only" type="checkbox" id="doc_hard_copy_only" value="checkbox" /></td>
</tr>
<tr>
<td width="25%">POC: </td>
<td width="25%">POC: </td>
<td width="25%">POC: </td>
<td width="25%">POC: </td>
</tr>
<tr>
<td width="25%"><input name="doc_poc_1" type="text" id="doc_poc_1" /> </td>
<td width="25%"><input name="doc_poc_2" type="text" id="doc_poc_2" /> </td>
<td width="25%"><input name="doc_poc_3" type="text" id="doc_poc_3" /> </td>
<td width="25%"><input name="doc_poc_4" type="text" id="doc_poc_4" /> </td>
</tr>
<tr>
<td width="25%" valign="top"><div align="right">Additional Comments </div></td>
<td colspan="3"><textarea name="doc_additional_comments" cols="40" rows="12" wrap="physical" id="doc_additional_comments"></textarea></td>
</tr>
<tr>
<td colspan="4"> </td>
</tr>
<tr>
<td> </td>
<td><div align="center">
<input type="reset" name="Reset" value="Reset" />
</div></td>
<td><div align="center">
<input type="submit" name="submit2" value="Submit" />
</div></td>
<td> </td>
</tr>
</table>
</form>
</body>
</html>
UPLOAD.PHP
<?php
mysql_connect("SERVERNAME","USERNAME","PASSWORD");
mysql_select_db("DBNAME");
$data = addslashes(fread(fopen($form_data, "r"), filesize($form_data)));
$result=MYSQL_QUERY("INSERT INTO baseline_doc_uploads (description, data,filename,filesize,filetype,doc_level,doc_sub_level,doc_name,doc_num_a,doc_num_b,doc_change_a,doc_change_b,doc_version_a,doc_version_b,doc_revision_a,doc_revision_b,doc_spcr_a,doc_spcr_b,doc_date_a,doc_date_b,doc_opr,doc_priority,doc_status,doc_hard_copy_only,doc_poc_1,doc_poc_2,doc_poc_3,doc_poc_4,doc_additional_comments) ". "VALUES ('$form_description','$data','$form_data_name','$form_data_size','$form_data_type','$doc_level','$doc_sub_level','$doc_name','$doc_num_a','$doc_num_b','$doc_change_a','$doc_change_b','$doc_version_a','$doc_version_b','$doc_revision_a','$doc_revision_b','$doc_spcr_a','$doc_spcr_b','$doc_date_a','$doc_date_b','$doc_opr','$doc_priority','$doc_status','$doc_hard_copy_only','$doc_poc_1','$doc_poc_2','$doc_poc_3','$doc_poc_4','$doc_additional_comments'
)");
$id= mysql_insert_id();
print "<p>File ID: <b>$id</b><br>";
print "<p>File Name: <b>$form_data_name</b><br>";
print "<p>File Size: <b>$form_data_size</b><br>";
print "<p>File Type: <b>$form_data_type</b><p>";
?>
DOWNLOAD.PHP
<?php
mysql_connect("SERVERNAME","USERNAME","PASSWORD");
mysql_select_db("DBNAME");
$query = "SELECT data,filetype FROM baseline_doc_uploads where id=$id";
$result = MYSQL_QUERY($query);
$data = MYSQL_RESULT($result,0,"data");
$type = MYSQL_RESULT($result,0,"filetype");
Header( "Content-type: $type");
print $data;
?>
Besides this answer (which I hope will come soon 🙂 ), how do I get the downloaded file to open in it's program vs. inside the browser window.