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)
toif($\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
。正如我所说的,只需先检查文件大小,然后检查是否有错误。@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;
}
}