Jump to content

upload php form help


waterwn1097

Recommended Posts

so i am trying to use a form to upload pdf documents to my server remotely. The php code is in its own file called "upload.php". The error I am getting is the die error "The file you attempted to upload is not allowed" therefore something is wrong because I have permissions set for PDF documents which is what I am trying to upload.

<?php
   // Configuration - Your Options
      $allowed_filetypes = array('.pdf'); // These will be the types of file that will pass the validation.
      $max_filesize = 524288; // Maximum filesize in BYTES (currently 0.5MB).
      $upload_path = './users/'; // The place the files will be uploaded to (currently a 'files' directory).
 
   $filename = $_FILES['userfile']['name']; // Get the name of the file (including file extension).
   $ext = substr($filename, strpos($filename,'.'), strlen($filename)-1); // Get the extension from the filename.
 
   // Check if the filetype is allowed, if not DIE and inform the user.
   if(!in_array($ext,$allowed_filetypes))
      die('The file you attempted to upload is not allowed.');
 
   // Now check the filesize, if it is too large then DIE and inform the user.
   if(filesize($_FILES['userfile']['tmp_name']) > $max_filesize)
      die('The file you attempted to upload is too large.');
 
   // Check if we can upload to the specified path, if not DIE and inform the user.
   if(!is_writable($upload_path))
      die('You cannot upload to the specified directory, please CHMOD it to 777.');
 
   // Upload the file to your specified path.
   if(move_uploaded_file($_FILES['userfile']['tmp_name'],$upload_path . $filename))
         echo 'Your file upload was successful, view the file <a href="' . $upload_path . $filename . '" title="Your File">here</a>'; // It worked.
      else
         echo 'There was an error during the file upload.  Please try again.'; // It failed .
 
?>

here is the HTML form code

<center><table width="600" align="center" cellpadding="5">
<form action="upload.php" method="post">
<p><font color="red"><?php print("$message");?></font></p>


<tr>
      <td width="163"><div align="right">File:</div></td>
      <td width="409"><input type="file" name="userfile" id="file"/></td>
    </tr>
            <tr>
      <td><div align="right"></div></td>
      <td><input type="submit" name="Submit" value="submit" /></td>
    </tr> </form>
    
</table>
</center>

thanks

 
Link to comment
Share on other sites

something i always recommend when validating user supplied input, is to have the failure message display the submitted value that failed the test along with the permitted values (as long as it doesn't expose any security information.) this will make your code self-troubleshooting and help the user by telling him exactly why something he did failed.

 

btw - your form is missing the enctype that would allow the upload to work at all. your code must test if the upload worked before you can use ANY of the uploaded file information.

Edited by mac_gyver
Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.