<?
//Connect to MySQL
//If this information is correct, this smart script will handle the rest
DEFINE ('DB_USER', 'root');
DEFINE ('DB_PASSWORD', '');
DEFINE ('DB_HOST', 'localhost');
DEFINE ('DB_NAME', 'database');
mysql_connect (DB_HOST, DB_USER, DB_PASSWORD) OR
die ($message .= 'Could not connect to MySQL: ' . mysql_error() );
//Select the databse
//If a it doesn't exist then create one
$dbs = mysql_select_db (DB_NAME);
if(!$dbs) {
mysql_query("CREATE DATABASE `" . DB_NAME . "` ;");
mysql_select_db (DB_NAME);
$message .= '<p>The database "' . DB_NAME . '" has been created.';
}
//Select the table
//If it doesn't exist then create one
$table_name = 'uploads'; //Name of the table on the database that will store the information
$query = mysql_query("SELECT * FROM `$table_name`"); //Query the database for a duplicate visible name
if(!$query) { //If the database table doesn't exist, then create it.
mysql_query("CREATE TABLE `$table_name` (`id` int(11) NOT NULL auto_increment, `url` text NOT NULL,
`name` text NOT NULL, `date` datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (`id`)) TYPE=MyISAM AUTO_INCREMENT=15 ;");
$message .= '<p>The table "uploads" has been created.';
}
$upload_dir = "uploads"; //Directory name (With path if there is one ie. /one/more/dir/uploads)(path is relative)
//Upload file processer
$dup_filename = FALSE;
$dup_vis_name = FALSE;
$upload_trouble = $_POST['new_vis_name']; //This is what the user entered as a visible file name
//Test for form submission
if($_POST['submit']) {
//Test for file
if($_FILES['file']['tmp_name']) { // If a file has been selected for uploading
if(!is_uploaded_file($_FILES['file']['tmp_name'])) { //If the upload was successful
$message .= '<p>Failure. There was a problem uploading the file.</p>';
}
} else {
$message .= '<p>Failure. No file was selected to upload.</p>';
}
//Test for visible name
if($_POST['new_vis_name']) {
$query = mysql_query("SELECT * FROM `uploads`"); //Query the database for a duplicate visible name
while($result = mysql_fetch_array($query)) {
if($_POST['new_vis_name'] == $result['name']) {
$dup_vis_name = TRUE; // There is a duplicate visible name
}
}
if ($dup_vis_name) {
$message .= '<p>Failure. The "Visible Name" is already in use.
Please write a new name and try again.</p>';
}
} else {
$message .= '<p>Failure. You forgot to enter a "Visible Name."</p>';
}
//Test for filename
if ($handle = opendir($upload_dir)) { //Open the upload directory
while (false !== ($file = readdir($handle))) { //Correct way to list all files in a directory
if($_FILES['file']['name'] == $file) { //Check for duplicate file names
$dup_filename = TRUE; // There is a duplicate filename
}
}
if ($dup_filename) {
$message .= '<p>Failure. The file name is already in use
(not the "Visible Name"), please rename the file and try again.</p>';
}
}
if($_FILES['file']['tmp_name'] && $_POST['new_vis_name'] && !$dup_vis_name && !$dup_filename) {
$test = move_uploaded_file($_FILES['file']['tmp_name'], $upload_dir . '/' . $_FILES['file']['name']);
if(!$test) {echo 1;}
mysql_query("INSERT INTO `$table_name` ( `id` , `url` , `name` , `date` )
VALUES ('', '" . $_FILES['file']['name'] . "', '" . $_POST['new_vis_name'] . "', NOW() );");
$message .= '<p>Success. The file has been successfully uploaded and added online.</p>';
$upload_trouble = NULL;
}
}
?>
<html>
<body>
<form name="main" method="post" enctype="multipart/form-data" action="">
<h2>Upload a file here</h2>
<? echo $message ?>
<table cellpadding="5" border="1">
<tr>
<td><b>New File</td>
<td><input type="file" name="file" size="20"></td>
</tr>
<tr>
<td><b>Visible Name</td>
<td><input name="new_vis_name" value="" size="40"></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" name="submit" value="Upload File"></td>
</tr>
</table>
<br>
</form>
</body>
</html>