如何在yii中验证上传的文件大小

时间:2014-07-23 03:02:06

标签: php yii filesize

我有一个允许用户上传文件的网站,但我希望在将文件保存到服务器之前设置该文件的最小大小。假设要上传的最小文件大小为50KB。 如何在Yii中编写脚本?我应该在控制器或模型中放置函数?

3 个答案:

答案 0 :(得分:3)

FileValidator具有minSize参数as described here

您可以将验证规则修改为如下:

array('yourfile','file', 'types'=>'jpg, gif, png, jpeg', 'minSize'=>1024 * 1024 * 50, 'tooLarge'=>'File has to be bigger than 50MB')

答案 1 :(得分:3)

如果你使用yii

array('filename','file', 'types'=>'jpg, png', 'minSize'=>1024 * 1024 * 10, 'tooLarge'=>'Not more than 10MB')

如果您使用jquery,那么获取当前大小并验证会更好,

$("#imageInput").change(function () 
        { 
            var iSize = ($("#imageInput")[0].files[0].size / 1024); 
            if(iSize>1024 * 1024 * 10)
            {
                 $("#sizemb").html( iSize + "is greater than 10mb"); 
            }
            else if (iSize / 1024 > 1) 
            { 
               if (((iSize / 1024) / 1024) > 1) 
               { 
                   iSize = (Math.round(((iSize / 1024) / 1024) * 100) / 100);
                   $("#sizemb").html( iSize + "Gb"); 
               }
               else
               { 
                   iSize = (Math.round((iSize / 1024) * 100) / 100)
                   $("#sizemb").html( iSize + "Mb"); 
               } 
            } 
            else 
            {
               iSize = (Math.round(iSize * 100) / 100)
               $("#sizemb").html( iSize  + "kb"); 
            }
        });

答案 2 :(得分:1)

yii实际上没有必要,只要文件上传到服务器就会创建一个全局变量。

您必须使用接受文件的表单

<form enctype="multipart/form-data"></form>
<input type="file" name="file">

在您的操作中,检查上传的文件

$name = $_FILES['file']['name']; //name of the file
$size = $_FILES['file']['size']; //size of the file in bytes

if($size < $minSize)
{
    //Your code here
}

else
{
    //When file does not meet the minimun.
    //Your code here
}