yii CMultiFileUpload проверка максимального размера файла
Я использую CMultifileUpload для загрузки файла и пытаюсь установить максимальный размер загрузки для файла. Поскольку я искал и не получил никаких встроенных параметров, чтобы установить максимальный размер файла перед загрузкой.
Здесь мой код загрузки файла,
$filetype="avi|flv|mp4|mpeg|mov|3gp|mkv|vob|divx|mpg|wmv|wlmp";
$this->widget('CMultiFileUpload', array(
'model'=>$model,
'name' => 'videofile',
'max'=>1,
'accept' => $filetype,
'duplicate' => 'Duplicate file!',
'denied' => 'Invalid file type',
'htmlOptions'=>array('style'=>'opacity: 0; height: 136px; width: 200px;cursor: pointer;'),
'options'=>array(
'onFileSelect'=>'function(e, v, m){
var size=$("#videofile")[0].files[0].size;
alert(size);
if(size <=25*1024*1024){
$(".black_overlay").show();
$("#video-form").submit();
}else{
alert("File Size Exceeded");
$("#video-form").reset();
return false;
}
}',
),
));
То, что я получаю, это, если условие успеха условия работает нормально, но для случая отказа форма не сбрасывается.
И на самом деле я пытаюсь проверить размер файла перед отправкой.
Помоги мне. Заранее спасибо.
4 ответа
Попробуйте это в ваших правилах:
array('yourfile','file', 'types'=>'jpg, gif, png, jpeg', 'maxSize'=>1024 * 1024 * 50, 'tooLarge'=>'File has to be smaller than 50MB'),
больше деталей:
http://www.yiiframework.com/doc/api/1.1/CFileValidator
или настройте свой файл php.ini:
Вы можете попробовать это. это будет работать
'afterFileSelect'=>'function(e ,v ,m){
var fileSize = e.files[0].size;
if(fileSize>800*1024){ <--800KB limit
alert("Exceeds file upload limit 800KB");
$(".MultiFile-remove").click(); <--cliks the remove button if size exceeds
}
return true;
}',
Проверка размера файла Cmultifileupload работает для меня.
`$this->widget('CMultiFileUpload', array(
'model'=>$model,
'name' => 'audiofile',
'max'=>1,
'accept' => $filetype,
'duplicate' => 'Duplicate file!',
'denied' => 'Invalid file type',
'htmlOptions'=>array('style'=>'opacity: 0; height: 80px; width: 118px;cursor: pointer;','size'=>25),
'options'=>array(
'afterFileSelect'=>'function(e ,v ,m){
var fileSize = e.files[0].size;
if(fileSize>125*1024*1024){
alert("Exceeds file upload limit(500). Uploaded 200 MB not allowed!");
}
else
{
$(".black_overlay").show();
$("#audio-form").submit();
}
$("#audio-form").reset();
return false;
}',
),
));
Работает для меня:
widget ('CMultiFileUpload', массив ( 'model'=>$model, 'attribute'=>'updatePhoto', 'accept'=>'jpg|jpeg|gif|png', 'name'=>'photos', 'remove'=>'remove', 'options'=>array(функция'onFileSelect'=>' (e,v,m){ var fileSize = e.files[0].size; if(fileSize>1024*1024){// Предупреждение 1 МБ ("Максимальный размер файла только 1 МБ"); $("#photos ").reset(); return false; } }',), 'denied'=>' Файл не разрешен ', 'max'=>1, // максимум 10 файлов));?>