Right, your form needs to look something like this:
<form action="/upload_script.php" method="post" ENCTYPE="multipart/form-data">
<input type=hidden name=MAX_FILE_SIZE value=10240000>
Select your file to upload
<input type="file" name="upload"><p>
<input type="submit">
</form>
The input type=file has a "Browse" button to the right of it. When clicked this opens up the file browser. The user selects the file they want to upload and presses submit - this will upload the file to upload_script.php. I've put a hidden variable MAX_FILE_SIZE as a demo. This is self explanatory - you can't upload a file larger than 10megs. It's best to set this variable at the head of your upload_script.php or in PHP.ini
That's the easy part. Now you've got to deal with handling the uploaded file and writing to disk somewhere.
Have a look at this bit of code, it should help:
if($upload!="none") {
$upload_dir = "/usr/home/mydir/upload/";
// Generate some filenames!
$uploadfile = $upload_dir . $upload_name;
// open the temporary file (uploaded)
$fps = fopen($upload, "r");
// open the new file
$fpd = fopen($uploadfile, "w");
// copy file
while (!feof($fps)) {
$buf = fread($fps, 8192);
fwrite($fpd, $buf);
}
// Close Files
fclose($fps);
fclose($fpd);
}