简体   繁体   中英

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

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.

<?php
if(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 64M

But 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, ie 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.

post_max_size means sum of all filesizes + other post fields.
post_max_size should be always more than upload_max_filesize

Try to set post_max_size as 26M

Added: Firs of all check if $_FILES['userfile'] is set ie:

if(!isset($_FILES['userfile'])) 
  die("<SCRIPT LANGUAGE='JavaScript'> 
       window.alert('No file upload !');
       window.location.href='upload.php'; 
      </SCRIPT>");

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM