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