文件上传警告帖子内容长度字节超出限制

Posted

技术标签:

【中文标题】文件上传警告帖子内容长度字节超出限制【英文标题】:File Upload Warning post content-length of bytes exceeds the limit 【发布时间】:2012-11-17 19:18:01 【问题描述】:

我正在制作一个文件上传系统。用户使用动态下拉列表选择上传位置。这就是我现在面临的问题。 这是我的表格。

<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>

这是我链接到的另一个 php 文件。

<?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>");
?>

我已经使用以下设置编辑了 phpini 文件,并且还在 php 文件夹中创建了一个 .htaccess 文件。

upload_max_filesize 25M post_max_size 25M memory_limit 64M

但是当我故意上传大于 25 MB 的文件时,我收到标题中给出的错误。此外,考虑到违反了最大文件大小,它不会给出与文件大小相关的错误,即您尝试上传的文件太大,它说您无法上传以下类型的文件。在后台发布长度警告的事情来了。

请帮我解决这个问题。我在我的本地主机上。

【问题讨论】:

【参考方案1】:

post_max_size 表示所有文件大小的总和 + 其他帖子字段。 post_max_size 应该总是大于 upload_max_filesize

尝试将 post_max_size 设置为 26M

添加: 首先检查是否设置了 $_FILES['userfile'] 即:

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

【讨论】:

为什么 20000000 大约 20mb 这部分的答案是:“但是当我故意上传大于 25 MB 的文件时,我得到了标题中给出的错误。” 顺便检查一下是否设置了$_FILES['userfile'] 即:if(!isset($_FILES['userfile']) die("&lt;SCRIPT LANGUAGE='JavaScript'&gt; window.alert('No file upload !') window.location.href='upload.php'; &lt;/SCRIPT&gt;"); 我在您所说的所有检查之前添加了该检查,它将我重定向到空的 uploader.php 页面,文件没有被上传,但它没有像我提到的那样给出错误在我的代码中。这也出现了:解析错误:语法错误,某某路径中的意外“死”(T_EXIT) 对不起。我的代码中有 2 个语法错误。第一行末尾应该有“)”符号和; JavaScript 代码中的分隔符。查看已编辑的消息

以上是关于文件上传警告帖子内容长度字节超出限制的主要内容,如果未能解决你的问题,请参考以下文章

PHP 警告:POST 内容长度超出限制

警告:20616317 字节的 POST 内容长度超出第 0 行未知中 8388608 字节的限制

POST Content-Length 超出限制

PHP 警告:66192047 字节的 POST 内容长度超过了 8388608 字节的限制

如何修复 * bytes 的 Content-Length 超过 * bytes 的限制

警告:20616317 字节的 POST 内容长度超过第 0 行未知中 8388608 字节的限制