Jump to content
trollster

File Upload Warning post content-length of bytes exceeds the limit

Recommended Posts

I am making a file upload system. The user chooses where to upload using the dynamic drop down list. And this is the problem I am facing right now. This is my form.

<form action="uploader.php" method="POST" enctype="multipart/form-data" name="uploads">		    <label for="file">Choose a file: </label>			    <input type="file" name="userfile" id="userfile"><br/><br/>				    <select id="text-one" name="one">					    <option selected value="base">Select Department</option>					    <option value="CSE" name="cse">Computer Science Engineering</option>					    <option value="ECE" name="ece">Electronics & Communication Engineering</option>					    <option value="MECH" name="mech">Mechanical Engineering</option>				    </select>				    <br /><br/>				    <select id="text-two" name="two">					    <option>Select Semester</option>				    </select>				    <br /><br/>				    <select id="text-three" name="three">					    <option>Select Subject</option>				    </select>				    <br/><br/>		    <button class ="btn btn-primary" button type="submit" name="upload" value="Upload" onClick="val()">Upload</button>	    </form>

And this is my other php file to which it is linked.

<?phpif(isset($_POST['upload'])){  $path1=$_POST['one']."/";  $path2=$_POST['two']."/";  $path3=$_POST['three']."/";    $upload_path=$path1.$path2.$path3;}else{  echo "Select a Subject";  echo "<br>";}$allowed_filetypes = array('.doc','.docx','.jpg','.jpeg','.png','.ppt','.pptx','.xls','.xlsx','.pdf','.txt','.zip','.rar');$max_filesize = 20000000;$filename = $_FILES['userfile']['name'];$ext = substr($filename, strpos($filename,'.'), strlen($filename)-1);if(!in_array($ext,$allowed_filetypes))  die("<script LANGUAGE='JavaScript'>	    window.alert('You cannot upload the following type of file!')	    window.location.href='upload.php';	 </SCRIPT>");if(filesize($_FILES['userfile']['size']) > $max_filesize)  die("<script LANGUAGE='JavaScript'>	    window.alert('The file you attempted to upload is too large!')	    window.location.href='upload.php';	 </SCRIPT>");if(!is_writable($upload_path))  die("<script LANGUAGE='JavaScript'>	    window.alert('You cannot upload to the specified directory!')	    window.location.href='upload.php';	 </SCRIPT>");if(move_uploaded_file($_FILES['userfile']['tmp_name'],$upload_path . $filename))  echo ("<script LANGUAGE='JavaScript'>		  window.alert('Your file has been uploaded successfully')		  window.location.href='upload.php';	    </SCRIPT>");else  echo ("<script LANGUAGE='JavaScript'>		  window.alert('There was an error during the file upload!')		  window.location.href='upload.php';	    </SCRIPT>");?>

I have edited the phpini file with the following settings and also made a .htaccess file in the php folder.upload_max_filesize 25M post_max_size 25M memory_limit 64MBut when I intentionally upload a file greater than 25 MB, I get the error as given in the title. Also, considering the max file size is being violated, it does not give the error related to the file size, i.e The file you attempted to upload is too large, it says You cannot upload the following type of file. And in the background that post length warning thing comes.Please help me with this. I am on my localhost.

Share this post


Link to post
Share on other sites

When the post_max_size is exceeded the $_POST and $_FILES arrays are both empty, there won't be any data in either one. It shows the error about the type because the filename is empty, which means you get an empty extension, and the empty extension is not in the list of allowed types.

Share this post


Link to post
Share on other sites

check for the file size first, there is dependency on the extension condition of there actually being an extension, so as not to provide a false positive. Or make sure $ext != '' as part of the extension check condition.

Share this post


Link to post
Share on other sites

If you want to detect if the post max size was exceeded then one way is to have your form send a value in $_GET that you can use to determine if the form was submitted. If the form was submitted but $_POST and $_FILES are empty then it was too large.

Share this post


Link to post
Share on other sites

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.   Paste as plain text instead

  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.

Loading...

×
×
  • Create New...