Need help modifying file uploader

I’ve been modifying this file uploader: http://www.mediafire.com/?x8lkmt54m11s8t6

I’m trying to learn PHP but I’m having trouble trying to figure these 3 things out:

When it uploads a file, how can I have it also create a link to said file on another web page?

How can I make the file uploader require a password?

Finally, how can I change what page it would be posted on by a drop down box?

Any help you can give is appreciated.

Rather than a mediafire link, please could you include the file inside of your post (please use code or PHP tags - see the message above the text field you use to post with).

index.php:
[php]<?php

// filename: upload.form.php

// first let’s set some variables

// make a note of the current working directory relative to root.
$directory_self = str_replace(basename($_SERVER[‘PHP_SELF’]), ‘’, $_SERVER[‘PHP_SELF’]);

// make a note of the location of the upload handler
$uploadHandler = ‘http://’ . $_SERVER[‘HTTP_HOST’] . $directory_self . ‘processor.php’;

// set a max file size for the html upload form
$max_file_size = 2097152; // size in bytes

// now echo the html page
?>

	<link rel="stylesheet" type="text/css" href="style.css">
	
	<title>Upload form</title>

</head>

<body>

<form id="Upload" action="<?php echo $uploadHandler ?>" enctype="multipart/form-data" method="post">

	<h1>
		File uploader
	</h1>
	
	<p>
		<input type="hidden" name="MAX_FILE_SIZE" value="<?php echo $max_file_size ?>">
	</p>
	
	<div id="center">
	
		<p>
			<label for="file">File:</label>
			<input id="file" type="file" name="file">
		</p>
			
		<p>
			<input id="submit" type="submit" name="submit" value="Upload">
		</p>
		
	</div>

</form>


</body>
[/php]

processor.php:
[php]<?php

// make a note of the current working directory, relative to root.
$directory_self = str_replace(basename($_SERVER[‘PHP_SELF’]), ‘’, $_SERVER[‘PHP_SELF’]);

// make a note of the directory that will recieve the uploaded files
$uploadsDirectory = $_SERVER[‘DOCUMENT_ROOT’] . $directory_self . ‘uploaded/’;

// make a note of the location of the upload form in case we need it
$uploadForm = ‘http://’ . $_SERVER[‘HTTP_HOST’] . $directory_self . ‘index.php’;

// make a note of the location of the success page
$uploadSuccess = ‘http://’ . $_SERVER[‘HTTP_HOST’] . $directory_self . ‘success.php’;

// name of the fieldname used for the file in the HTML form
$fieldname = ‘file’;

// Now let’s deal with the upload

// possible PHP upload errors
$errors = array(1 => ‘php.ini max file size exceeded’,
2 => ‘html form max file size exceeded’,
3 => ‘file upload was only partial’,
4 => ‘no file was attached’);

// check the upload form was actually submitted else print form
isset($_POST[‘submit’])
or error(‘the upload form is neaded’, $uploadForm);

// check for standard uploading errors
($_FILES[$fieldname][‘error’] == 0)
or error($errors[$_FILES[$fieldname][‘error’]], $uploadForm);

// check that the file we are working on really was an HTTP upload
@is_uploaded_file($_FILES[$fieldname][‘tmp_name’])
or error(‘not an HTTP upload’, $uploadForm);

// validation… since this is an image upload script we
// should run a check to make sure the upload is an image

// make a unique filename for the uploaded file and check it is
// not taken… if it is keep trying until we find a vacant one
$now = time();
while(file_exists($uploadFilename = $uploadsDirectory.$now.’-’.$_FILES[$fieldname][‘name’]))
{
$now++;
}

// now let’s move the file to its final and allocate it with the new filename
@move_uploaded_file($_FILES[$fieldname][‘tmp_name’], $uploadFilename)
or error(‘receiving directory insuffiecient permission’, $uploadForm);

// If you got this far, everything has worked and the file has been successfully saved.
// We are now going to redirect the client to the success page.
header('Location: ’ . $uploadSuccess);

// make an error handler which will be used if the upload fails
function error($error, $location, $seconds = 5)
{
header(“Refresh: $seconds; URL=”$location"");
echo ‘’."\n\n".
‘’."\n".
’ '."\n".
’ '."\n\n".
’ ‘."\n\n".
’ Upload failed’."\n\n".
’ '."\n\n".
’ '."\n\n".

‘."\n\n".

Upload failed

’."\n\n".

An error has occured: ‘."\n\n".
’ . $error . ‘.’."\n\n".
’ You will be redirected back to the uploader form in 5 seconds.

’."\n\n".
'."\n\n".
‘’;
exit;
} // end error handler

?>[/php]

success.php:
[php]<?php

// filename: upload.success.php

?>

	<link rel="stylesheet" type="text/css" href="style.css">
	
	<title>PRO SALAMANDERRR! - File uploader</title>
	
</head>

<body>

	<div id="Upload">
		<h1>File uploader</h1>
		<p>Your file has been succesfully uploaded.</p>
	</div>

</body>
[/php]

style.css:
[php]#Upload {
width: 25em;
margin: 1em auto;
padding:0 2em 2em 2em ;
border:1px solid #bbb;
color: #333;
background:#ffd;
font: 0.9em verdana, sans-serif;
}

#Upload h1 {
font: 1.4em bold verdana, sans-serif;
margin: 0;
padding:1em 0;
text-align:center;
}

#Upload p {
clear: both;
}

.red {
color:#ff0000;
}

#center {
text-align:center;
}[/php]

Bump.

When it uploads a file, how can I have it also create a link to said file on another web page?

You’d need to generate a link based on the path that the file has been uploaded to. For this, I would replace the DOCUMENT_ROOT inside of the $uploadFilename variable with your website path:

[php]$link = str_replace($_SERVER[‘DOCUMENT_ROOT’], ‘http://some-site.com/’, $uploadFilename);[/php]

How can I make the file uploader require a password?

Add a password form field then check for this field against correct password(s) when the form is submitted.

Finally, how can I change what page it would be posted on by a drop down box?

What do you mean, “change what page it would be posted on”?

Sponsor our Newsletter | Privacy Policy | Terms of Service