Php 文件大小错误代码不工作

Php 文件大小错误代码不工作,php,php-5.6,php-5.5,Php,Php 5.6,Php 5.5,我已经写了以下几行代码 <?php $uniqId = uniqid('file_'); $root = $_REQUEST['root']; $target_file = "uploads/".basename($_FILES["file"]["name"]); $imageFileType = pathinfo($target_file,PATHINFO_EXTENSION); if ( 0 < $_FILES['file']['error'] ) { echo

我已经写了以下几行代码

<?php

$uniqId = uniqid('file_');
$root = $_REQUEST['root'];

$target_file = "uploads/".basename($_FILES["file"]["name"]);

$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);

if ( 0 < $_FILES['file']['error'] )
{
    echo 'Error';
}
else if ($_FILES["file"]["size"] > 2097152) 
{
  echo "SizeError";
}
else if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "docx" && $imageFileType != "pdf") 
{
  echo "ExtensionError";
}
else 
{   
   if( move_uploaded_file($_FILES['file']['tmp_name'], $root.$uniqId.".".$imageFileType))
   {
       echo $uniqId.".".$imageFileType;
   }
}

<?php

$uniqId = uniqid('file_');
$root = $_REQUEST['root'];

$target_file = "uploads/".basename($_FILES["file"]["name"]);

$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);

if ( 0 < $_FILES['file']['error'] )
{
    echo 'Error';
}
else if ($_FILES["file"]["size"] > 2097152) 
{
  echo "SizeError";
}
else if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "docx" && $imageFileType != "pdf") 
{
  echo "ExtensionError";
}
else 
{   
   if( move_uploaded_file($_FILES['file']['tmp_name'], $root.$uniqId.".".$imageFileType))
   {
       echo $uniqId.".".$imageFileType;
   }
}

如果我上传5MB文件,代码会跳转到简单的“错误”状态。我希望它应该显示SizeError。请帮忙

这是获取尺寸的另一种方法

<?php

$uniqId = uniqid('file_');
$root = $_REQUEST['root'];

$target_file = "uploads/".basename($_FILES["file"]["name"]);

$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);

if ( 0 < $_FILES['file']['error'] )
{
    echo 'Error';
}
else if ($_FILES["file"]["size"] > 2097152) 
{
  echo "SizeError";
}
else if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "docx" && $imageFileType != "pdf") 
{
  echo "ExtensionError";
}
else 
{   
   if( move_uploaded_file($_FILES['file']['tmp_name'], $root.$uniqId.".".$imageFileType))
   {
       echo $uniqId.".".$imageFileType;
   }
}
if (filesize($target_file) > 2097152) 
{
  echo "SizeError";
}
但首先,我认为在
$文件['file']['error']
中有一个错误
上传\u ERR\u INI\u SIZE
。UPLOAD_ERR_INI_SIZE=1您可以在php.INI中增加它。在php.ini中添加或修改此选项,例如,yo increase max_file_size=25mb:

<?php

$uniqId = uniqid('file_');
$root = $_REQUEST['root'];

$target_file = "uploads/".basename($_FILES["file"]["name"]);

$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);

if ( 0 < $_FILES['file']['error'] )
{
    echo 'Error';
}
else if ($_FILES["file"]["size"] > 2097152) 
{
  echo "SizeError";
}
else if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "docx" && $imageFileType != "pdf") 
{
  echo "ExtensionError";
}
else 
{   
   if( move_uploaded_file($_FILES['file']['tmp_name'], $root.$uniqId.".".$imageFileType))
   {
       echo $uniqId.".".$imageFileType;
   }
}
upload_max_filesize = 25M
修改php.ini后,您的代码也应该可以工作:

<?php

$uniqId = uniqid('file_');
$root = $_REQUEST['root'];

$target_file = "uploads/".basename($_FILES["file"]["name"]);

$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);

if ( 0 < $_FILES['file']['error'] )
{
    echo 'Error';
}
else if ($_FILES["file"]["size"] > 2097152) 
{
  echo "SizeError";
}
else if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "docx" && $imageFileType != "pdf") 
{
  echo "ExtensionError";
}
else 
{   
   if( move_uploaded_file($_FILES['file']['tmp_name'], $root.$uniqId.".".$imageFileType))
   {
       echo $uniqId.".".$imageFileType;
   }
}
if ( 0 < $_FILES['file']['error'] )
{
    echo 'Error';
}
else if ($_FILES["file"]["size"] > 2097152) 
{
  echo "SizeError";
}
您将看到您的设置,找到
upload\u max\u filesize
默认值为2mb。看起来像这样:

<?php

$uniqId = uniqid('file_');
$root = $_REQUEST['root'];

$target_file = "uploads/".basename($_FILES["file"]["name"]);

$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);

if ( 0 < $_FILES['file']['error'] )
{
    echo 'Error';
}
else if ($_FILES["file"]["size"] > 2097152) 
{
  echo "SizeError";
}
else if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "docx" && $imageFileType != "pdf") 
{
  echo "ExtensionError";
}
else 
{   
   if( move_uploaded_file($_FILES['file']['tmp_name'], $root.$uniqId.".".$imageFileType))
   {
       echo $uniqId.".".$imageFileType;
   }
}

首先检查此条件
如果($_FILES[“file”][“size”]>2097152)
则检查其他条件

<?php

$uniqId = uniqid('file_');
$root = $_REQUEST['root'];

$target_file = "uploads/".basename($_FILES["file"]["name"]);

$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);

if ( 0 < $_FILES['file']['error'] )
{
    echo 'Error';
}
else if ($_FILES["file"]["size"] > 2097152) 
{
  echo "SizeError";
}
else if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "docx" && $imageFileType != "pdf") 
{
  echo "ExtensionError";
}
else 
{   
   if( move_uploaded_file($_FILES['file']['tmp_name'], $root.$uniqId.".".$imageFileType))
   {
       echo $uniqId.".".$imageFileType;
   }
}
您可能会在
$\u FILES['file']['error']
处获得与1相等的
上载\u ERR\u INI\u大小。您可以在php.ini中增加它。在php.ini中更改此选项:

<?php

$uniqId = uniqid('file_');
$root = $_REQUEST['root'];

$target_file = "uploads/".basename($_FILES["file"]["name"]);

$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);

if ( 0 < $_FILES['file']['error'] )
{
    echo 'Error';
}
else if ($_FILES["file"]["size"] > 2097152) 
{
  echo "SizeError";
}
else if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "docx" && $imageFileType != "pdf") 
{
  echo "ExtensionError";
}
else 
{   
   if( move_uploaded_file($_FILES['file']['tmp_name'], $root.$uniqId.".".$imageFileType))
   {
       echo $uniqId.".".$imageFileType;
   }
}
upload_max_filesize = 25M
您得到“错误”的原因是因为这一行:

<?php

$uniqId = uniqid('file_');
$root = $_REQUEST['root'];

$target_file = "uploads/".basename($_FILES["file"]["name"]);

$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);

if ( 0 < $_FILES['file']['error'] )
{
    echo 'Error';
}
else if ($_FILES["file"]["size"] > 2097152) 
{
  echo "SizeError";
}
else if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "docx" && $imageFileType != "pdf") 
{
  echo "ExtensionError";
}
else 
{   
   if( move_uploaded_file($_FILES['file']['tmp_name'], $root.$uniqId.".".$imageFileType))
   {
       echo $uniqId.".".$imageFileType;
   }
}
if ( 0 < $_FILES['file']['error'] )
if(0<$\u文件['file']['error'])
如果您阅读此处的文档:,则会注意到有几个值可以随
$\u FILES['file']['error']
一起返回。当没有错误时,它返回0。但如果

<?php

$uniqId = uniqid('file_');
$root = $_REQUEST['root'];

$target_file = "uploads/".basename($_FILES["file"]["name"]);

$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);

if ( 0 < $_FILES['file']['error'] )
{
    echo 'Error';
}
else if ($_FILES["file"]["size"] > 2097152) 
{
  echo "SizeError";
}
else if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "docx" && $imageFileType != "pdf") 
{
  echo "ExtensionError";
}
else 
{   
   if( move_uploaded_file($_FILES['file']['tmp_name'], $root.$uniqId.".".$imageFileType))
   {
       echo $uniqId.".".$imageFileType;
   }
}
上载的文件超出了中的upload\u max\u filesize指令 php.ini

<?php

$uniqId = uniqid('file_');
$root = $_REQUEST['root'];

$target_file = "uploads/".basename($_FILES["file"]["name"]);

$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);

if ( 0 < $_FILES['file']['error'] )
{
    echo 'Error';
}
else if ($_FILES["file"]["size"] > 2097152) 
{
  echo "SizeError";
}
else if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "docx" && $imageFileType != "pdf") 
{
  echo "ExtensionError";
}
else 
{   
   if( move_uploaded_file($_FILES['file']['tmp_name'], $root.$uniqId.".".$imageFileType))
   {
       echo $uniqId.".".$imageFileType;
   }
}
如果出现以下情况,则返回2:

<?php

$uniqId = uniqid('file_');
$root = $_REQUEST['root'];

$target_file = "uploads/".basename($_FILES["file"]["name"]);

$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);

if ( 0 < $_FILES['file']['error'] )
{
    echo 'Error';
}
else if ($_FILES["file"]["size"] > 2097152) 
{
  echo "SizeError";
}
else if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "docx" && $imageFileType != "pdf") 
{
  echo "ExtensionError";
}
else 
{   
   if( move_uploaded_file($_FILES['file']['tmp_name'], $root.$uniqId.".".$imageFileType))
   {
       echo $uniqId.".".$imageFileType;
   }
}
上载的文件超过了已上载的MAX_file_SIZE指令 在HTML表单中指定

<?php

$uniqId = uniqid('file_');
$root = $_REQUEST['root'];

$target_file = "uploads/".basename($_FILES["file"]["name"]);

$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);

if ( 0 < $_FILES['file']['error'] )
{
    echo 'Error';
}
else if ($_FILES["file"]["size"] > 2097152) 
{
  echo "SizeError";
}
else if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "docx" && $imageFileType != "pdf") 
{
  echo "ExtensionError";
}
else 
{   
   if( move_uploaded_file($_FILES['file']['tmp_name'], $root.$uniqId.".".$imageFileType))
   {
       echo $uniqId.".".$imageFileType;
   }
}
在这两种情况下,0都小于1或2。因此,您的脚本将返回“错误”。因为条件的计算结果为true

<?php

$uniqId = uniqid('file_');
$root = $_REQUEST['root'];

$target_file = "uploads/".basename($_FILES["file"]["name"]);

$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);

if ( 0 < $_FILES['file']['error'] )
{
    echo 'Error';
}
else if ($_FILES["file"]["size"] > 2097152) 
{
  echo "SizeError";
}
else if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "docx" && $imageFileType != "pdf") 
{
  echo "ExtensionError";
}
else 
{   
   if( move_uploaded_file($_FILES['file']['tmp_name'], $root.$uniqId.".".$imageFileType))
   {
       echo $uniqId.".".$imageFileType;
   }
}

您需要更改条件,或者首先检查文件大小。

我遇到了同样的问题,并得到了解决方案。
<?php

$uniqId = uniqid('file_');
$root = $_REQUEST['root'];

$target_file = "uploads/".basename($_FILES["file"]["name"]);

$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);

if ( 0 < $_FILES['file']['error'] )
{
    echo 'Error';
}
else if ($_FILES["file"]["size"] > 2097152) 
{
  echo "SizeError";
}
else if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "docx" && $imageFileType != "pdf") 
{
  echo "ExtensionError";
}
else 
{   
   if( move_uploaded_file($_FILES['file']['tmp_name'], $root.$uniqId.".".$imageFileType))
   {
       echo $uniqId.".".$imageFileType;
   }
}
Codeigniter允许您上载大小小于2mb的图像。但如果您要上载大小为5MB的图像,则应在.htaccess文件中添加此行

<?php

$uniqId = uniqid('file_');
$root = $_REQUEST['root'];

$target_file = "uploads/".basename($_FILES["file"]["name"]);

$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);

if ( 0 < $_FILES['file']['error'] )
{
    echo 'Error';
}
else if ($_FILES["file"]["size"] > 2097152) 
{
  echo "SizeError";
}
else if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "docx" && $imageFileType != "pdf") 
{
  echo "ExtensionError";
}
else 
{   
   if( move_uploaded_file($_FILES['file']['tmp_name'], $root.$uniqId.".".$imageFileType))
   {
       echo $uniqId.".".$imageFileType;
   }
}
php_value upload_max_filesize 20M  

在.htaccess文件中添加这一行后,您的代码将正常工作。

否则如果($\u FILES[“file”][“size”]>5242880)根据我的意见
if(0<$\u FILES[“file”][“error”]){echo“error”;}
根本不需要这个问题与大小无关,主要问题是显示的错误消息。如果您正在强烈检查@nidaNot my downpoite的条件,请将5000000字节设置为条件,但如果您的答案包括“试试这个”,则很可能不是问题的答案。你没有测试它。你没有验证它是否能解决问题。你在赌博。@NidaAmin我已经改进了我的答案,我想我找到了解决办法。它不再起作用了。。。如果我把这作为第一个条件。。上传5 mb的文件您是对的,但我希望如果($_FILES[“file”][“size”]>2097152)现在可以工作,我将消除第一个条件,但如果($_FILES[“file”[“size”]>2097152)不能工作,则条件是work@NidaAmin只需更改
if(0<$\u文件['file']['error']]){..}或者if($\u文件['file'][“size”]>2097152)
to
if($\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
。正如我所说的,只需先检查文件大小,然后检查是否有错误。@NidaAmin另外,请确保返回了有意义的完整错误。回应“错误”很酷,但这并不能告诉你任何事情。它不会告诉你错误是什么。相反,请尝试类似于
echo“Error:”$_文件['file']['error']。现在您将看到返回的错误代码。如果($_FILES[“file”][“size”]>2097152)如果我先使用此条件,它在上载大于2097152的大文件时仍然不会抛出SizeError消息
<?php

$uniqId = uniqid('file_');
$root = $_REQUEST['root'];

$target_file = "uploads/".basename($_FILES["file"]["name"]);

$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);

if ( 0 < $_FILES['file']['error'] )
{
    echo 'Error';
}
else if ($_FILES["file"]["size"] > 2097152) 
{
  echo "SizeError";
}
else if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "docx" && $imageFileType != "pdf") 
{
  echo "ExtensionError";
}
else 
{   
   if( move_uploaded_file($_FILES['file']['tmp_name'], $root.$uniqId.".".$imageFileType))
   {
       echo $uniqId.".".$imageFileType;
   }
}