Page 1 of 4 123 ... LastLast
Results 1 to 10 of 34

Thread: Upload Form

  1. #1
    Join Date
    Oct 2007
    Posts
    52
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default Upload Form

    Hello,

    I have an upload form that doesn't want to work correctly for some reason. I am new at this and have searched and searched, and found nothing that can help fix what I need. It keep coming up with the file type is not allowed, and the file I am trying to submit is in the list of allowed types.

    PHP Code:
    <?php
       
    // Configuration - Your Options
          
    $allowed_filetypes = array('.jpg','.gif','.bmp','.png','.avi','.wmv',); // These will be the types of file that will pass the validation.
          
    $max_filesize 1500000// Maximum filesize in BYTES (currently 0.5MB).
          
    $upload_path 'uploads/'// 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($filenamestrpos($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 type 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.');
     
       
    // 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.'// It failed :(.
     
    ?>

  2. #2
    Join Date
    Jun 2005
    Location
    英国
    Posts
    11,876
    Thanks
    1
    Thanked 180 Times in 172 Posts
    Blog Entries
    2

    Default

    Off-by-one error: you don't need to take away that one from strlen($filename). The first parameter of substr() doesn't include the actual character you specify, but the second does. It's kind of like instead of selecting a character, you're selecting the line between that character and the one before.
    Twey | I understand English | 日本語が分かります | mi jimpe fi le jbobau | mi esperanton komprenas | je comprends français | entiendo español | tôi ít hiểu tiếng Việt | ich verstehe ein bisschen Deutsch | beware XHTML | common coding mistakes | tutorials | various stuff | argh PHP!

  3. #3
    Join Date
    Oct 2007
    Posts
    52
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default

    Okay so do I remove the -1 or something else. Like I said before, I am new to this. If possible can you explain it better or show what it needs to look like?

  4. #4
    Join Date
    Jun 2005
    Location
    英国
    Posts
    11,876
    Thanks
    1
    Thanked 180 Times in 172 Posts
    Blog Entries
    2

    Default

    Yes, just remove the -1 and it should be fine.
    Twey | I understand English | 日本語が分かります | mi jimpe fi le jbobau | mi esperanton komprenas | je comprends français | entiendo español | tôi ít hiểu tiếng Việt | ich verstehe ein bisschen Deutsch | beware XHTML | common coding mistakes | tutorials | various stuff | argh PHP!

  5. #5
    Join Date
    Oct 2007
    Posts
    52
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default

    It still come up with the same error that the file is not allowed.

  6. #6
    Join Date
    Jun 2005
    Location
    英国
    Posts
    11,876
    Thanks
    1
    Thanked 180 Times in 172 Posts
    Blog Entries
    2

    Default

    Well, firstly you can just do:
    Code:
    $ext = substr($filename, strpos($filename,'.'));
    Secondly, echo $ext; and see what it says.
    Twey | I understand English | 日本語が分かります | mi jimpe fi le jbobau | mi esperanton komprenas | je comprends français | entiendo español | tôi ít hiểu tiếng Việt | ich verstehe ein bisschen Deutsch | beware XHTML | common coding mistakes | tutorials | various stuff | argh PHP!

  7. #7
    Join Date
    Oct 2007
    Posts
    52
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default

    Quote Originally Posted by Twey View Post
    Well, firstly you can just do:
    Code:
    $ext = substr($filename, strpos($filename,'.'));
    Secondly, echo $ext; and see what it says.
    Where should I put the echo $ext;?

  8. #8
    Join Date
    Jun 2005
    Location
    英国
    Posts
    11,876
    Thanks
    1
    Thanked 180 Times in 172 Posts
    Blog Entries
    2

    Default

    Right after
    Code:
    $ext = substr($filename, strpos($filename,'.'));
    is fine.
    Twey | I understand English | 日本語が分かります | mi jimpe fi le jbobau | mi esperanton komprenas | je comprends français | entiendo español | tôi ít hiểu tiếng Việt | ich verstehe ein bisschen Deutsch | beware XHTML | common coding mistakes | tutorials | various stuff | argh PHP!

  9. #9
    Join Date
    Oct 2007
    Posts
    52
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default

    I put it after what you said and it still came up with the message of file not accepted.

  10. #10
    Join Date
    Jun 2005
    Location
    英国
    Posts
    11,876
    Thanks
    1
    Thanked 180 Times in 172 Posts
    Blog Entries
    2

    Default

    I suspect $_FILES['userfile']['name'] is empty. Did the file get uploaded correctly? Is the file input element named "userfile"? Did you set the enctype correctly on the form? Are you using POST?
    Twey | I understand English | 日本語が分かります | mi jimpe fi le jbobau | mi esperanton komprenas | je comprends français | entiendo español | tôi ít hiểu tiếng Việt | ich verstehe ein bisschen Deutsch | beware XHTML | common coding mistakes | tutorials | various stuff | argh PHP!

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •