Php 验证Yii中的动态文件字段失败?
您好,我正在尝试验证在Yii中创建的活动文件字段是否如此动态 我使用forech构建此输入,问题是当尝试验证用户何时选择图像时,指示您选择的文件是否超过允许的权重,以及它是否为正确的文件格式 但我不知道我做错了 我试过这个: 我的模型 我的观点 在我的控制器中 但别担心,这是行不通的 我的clientOptions在表单中有问题吗? 我的规则在模型中不好吗Php 验证Yii中的动态文件字段失败?,php,validation,yii,filefield,Php,Validation,Yii,Filefield,您好,我正在尝试验证在Yii中创建的活动文件字段是否如此动态 我使用forech构建此输入,问题是当尝试验证用户何时选择图像时,指示您选择的文件是否超过允许的权重,以及它是否为正确的文件格式 但我不知道我做错了 我试过这个: 我的模型 我的观点 在我的控制器中 但别担心,这是行不通的 我的clientOptions在表单中有问题吗? 我的规则在模型中不好吗 帮助T.T好吧,我知道不要使用Yii来验证我的字段。这不是最好的方法,但我最终用它来验证我所需要的 <div class="conta
帮助T.T好吧,我知道不要使用Yii来验证我的字段。这不是最好的方法,但我最终用它来验证我所需要的
<div class="container-fluid">
<div class="row paddings_bottom">
<?php
$hoho = VrfImage::model()->findAll("id_form = $search->id");
$formImage=$this->beginWidget('CActiveForm', array(
'id'=>'verification-form-image',
'action' => Yii::app()->createUrl("backendVerification/default/CreateImage?id=".$modUser->id),
'htmlOptions' => array('enctype' => 'multipart/form-data'),
'enableClientValidation'=>true,
'clientOptions'=>array(
'validateOnSubmit'=>true,
'validateOnChange'=>true,
'validateOnType'=>true,
),
));
?>
<div class="col-md-12 col-lg-12">
<table class="table table-bordered" style="margin-bottom: 0;">
<?php
$numQues = [11,22,33,44,55,66,77,88,99,111,222,333];
$nameQues = ['Business license','Company code','Tax register','Export license','Joint venture approved certificate','Land certificate','ISO9001:2008','ISO14001;2004','UL certificate','CE certificate','Quality manual','Quality organization'];
$oo = 0; $ban = 0;
foreach ($numQues as $ii => $NQ){
if($ii==0){
echo '<div class="borTopFormVrf"><span class="White">Company Documentation</span></div>';
}
if($ii <6){
if($oo<2){
if($oo==0){
echo '<tr>';
}
?>
<td class="col-md-6 col-lg-6 nopadd" style="border: 1px solid #000;">
<?php
foreach ($hoho as $key => $value) {
if($hoho[$key]->id_ques == $NQ){
echo '<img src="'.getThemeUri().'/../../VerificationResource/images/'.$hoho[$key]->image.'" style="max-width:100%;">';
$ban = 1;
}
}
if($ban!=1){
echo '<img src="#" style="visibility: hidden;" id="img_prev'.$ii.'" alt="your image"/>';
}
else{ $ban=0; }
?>
<?php echo $form->HiddenField($modImage,"[".$ii."]id_ques",array('value'=>$NQ)); ?>
<div class="col-md-12 col-lg-12" style="border-bottom: solid 1px #000;">
<div class="col-md-7 col-lg-7">
<?php echo $formImage->fileField($modImage,'['.$ii.']image', array( 'onChange'=>'readURL(this,'.$ii.')')); ?>
</div>
<div class="col-md-5 col-lg-5">
<?php
if($ban!=1){
echo '<label id="lbl'.$ii.'" style="visibility: hidden;" onclick="kkk('.$ii.')">X</label>';
}
?>
</div>
</div>
<?php echo $formImage->error($modImage,'['.$ii.']image'); ?>
<div class="text-center">
<?php echo $nameQues[$ii]; ?>
</div>
</td>
<?php if($oo==1){ echo '</tr>'; $oo = -1; }
$oo++;
}}
}
?>
</table>
</div>
<div class="col-md-12 col-lg-12 MT15">
<div class="col-md-2 col-lg-2">
<?php
if(isset($search->id_verifier)){
if($search->id_verifier == userID()){
echo CHtml::submitButton('Save', array('class' => 'btn btn-success btn_formVrf btn_create_address_size GreenVrf'));
}
}
?>
</div>
</div>
<?php $this->endWidget(); ?>
</div>
<div class="container-fluid">
<div class="row paddings_bottom">
<?php
$hoho = VrfImage::model()->findAll("id_form = $search->id");
$formImage=$this->beginWidget('CActiveForm', array(
'id'=>'verification-form-image',
'action' => Yii::app()->createUrl("backendVerification/default/CreateImage?id=".$modUser->id),
'htmlOptions' => array('enctype' => 'multipart/form-data'),
'enableClientValidation'=>true,
'clientOptions'=>array(
'validateOnSubmit'=>true,
'validateOnChange'=>true,
'validateOnType'=>true,
),
));
?>
<div class="col-md-12 col-lg-12">
<table class="table table-bordered" style="margin-bottom: 0;">
<?php
$oo = 0; $ban = 0;
foreach ($numQues as $ii => $NQ){
if($ii==0){
echo '<div class="borTopFormVrf"><span class="White">Company Documentation</span></div>';
}
if($ii <6){
if($oo<2){
if($oo==0){
echo '<tr>';
}
?>
<td class="col-md-6 col-lg-6 nopadd" style="border: 1px solid #000;">
<?php
foreach ($hoho as $key => $value) {
if($hoho[$key]->id_ques == $NQ){
echo '<img src="'.getThemeUri().'/../../VerificationResource/images/'.$hoho[$key]->image.'" style="max-width:100%;">';
$ban = 1;
}
}
if($ban!=1){ echo '<img src="#" style="max-width:100%; visibility: hidden;" id="img_prev'.$ii.'" alt="your image"/>'; }
else{ $ban=0; }
?>
<?php echo $form->HiddenField($modImage,"[".$ii."]id_ques",array('value'=>$NQ)); ?>
<?php echo $formImage->fileField($modImage,'['.$ii.']image', array('class'=>'form-control Borf-c', 'onChange'=>'readURL(this,'.$ii.')')); ?>
<?php echo $formImage->error($modImage,'['.$ii.']image'); ?>
<div class="text-center">
<?php echo $nameQues[$ii]; ?>
</div>
</td>
<?php if($oo==1){ echo '</tr>'; $oo = -1; }
$oo++;
}}
}
?>
</table>
</div>
<div class="col-md-12 col-lg-12">
<div class="col-md-12 col-lg-12 divTopFormBVrf">
<?php
if(isset($search->id_verifier)){
if($search->id_verifier == userID()){
echo CHtml::submitButton('Save', array('class' => 'btn btn-success btn_create_address btn_create_address_size'));
}
}
?>
</div>
</div>
<?php $this->endWidget(); ?>
</div>
public function actionCreateImage($id) {
$form = VrfForm::model()->find("id_user = $id");
$path_picture = realpath(Yii::app()->getBasePath()."/../VerificationResource/images")."/"; //ruta final de la imagen
if(isset($_POST['VrfImage'])) {
foreach ($_POST['VrfImage'] as $key => $value) {
$modImage = new VrfImage;
$modImage->attributes = $value;
//print_r($modImage->validate());
if($modImage->validate()){
echo 'Correcto';
////////////////////////////////////////////////////////////////////
$rnd = rand(0,9999); // generar números aleatorios entre 0-9999
$uploadedFile=CUploadedFile::getInstance($modImage,'['.$key.']image');
$fileName = "{$rnd}-{$uploadedFile}"; // número aleatorio + nombre de archivo, o se puede usar: $fileName=$uploadedFile->getName();
if(!empty($uploadedFile)) { // Compruebe si el archivo se ha subido o no.
$uploadedFile->saveAs($path_picture.$fileName);
$modImage->image = $fileName;
$modImage->id_ques = $value['id_ques'];
$modImage->id_form = $form->id;
if($modImage->save()) {
//echo ' REVISA!!! <br>';
}
else{
echo $modImage->error();
}
}
////////////////////////////////////////////////////////////////////
}
else{
echo 'Falla';
//$this->redirect($this->createUrl('default/Form'));
}
}
}
//$this->redirect(Yii::app()->user->returnUrl.'backendVerification/default/Form?id='.$id);
}
<div class="container-fluid">
<div class="row paddings_bottom">
<?php
$hoho = VrfImage::model()->findAll("id_form = $search->id");
$formImage=$this->beginWidget('CActiveForm', array(
'id'=>'verification-form-image',
'action' => Yii::app()->createUrl("backendVerification/default/CreateImage?id=".$modUser->id),
'htmlOptions' => array('enctype' => 'multipart/form-data'),
'enableClientValidation'=>true,
'clientOptions'=>array(
'validateOnSubmit'=>true,
'validateOnChange'=>true,
'validateOnType'=>true,
),
));
?>
<div class="col-md-12 col-lg-12">
<table class="table table-bordered" style="margin-bottom: 0;">
<?php
$numQues = [11,22,33,44,55,66,77,88,99,111,222,333];
$nameQues = ['Business license','Company code','Tax register','Export license','Joint venture approved certificate','Land certificate','ISO9001:2008','ISO14001;2004','UL certificate','CE certificate','Quality manual','Quality organization'];
$oo = 0; $ban = 0;
foreach ($numQues as $ii => $NQ){
if($ii==0){
echo '<div class="borTopFormVrf"><span class="White">Company Documentation</span></div>';
}
if($ii <6){
if($oo<2){
if($oo==0){
echo '<tr>';
}
?>
<td class="col-md-6 col-lg-6 nopadd" style="border: 1px solid #000;">
<?php
foreach ($hoho as $key => $value) {
if($hoho[$key]->id_ques == $NQ){
echo '<img src="'.getThemeUri().'/../../VerificationResource/images/'.$hoho[$key]->image.'" style="max-width:100%;">';
$ban = 1;
}
}
if($ban!=1){
echo '<img src="#" style="visibility: hidden;" id="img_prev'.$ii.'" alt="your image"/>';
}
else{ $ban=0; }
?>
<?php echo $form->HiddenField($modImage,"[".$ii."]id_ques",array('value'=>$NQ)); ?>
<div class="col-md-12 col-lg-12" style="border-bottom: solid 1px #000;">
<div class="col-md-7 col-lg-7">
<?php echo $formImage->fileField($modImage,'['.$ii.']image', array( 'onChange'=>'readURL(this,'.$ii.')')); ?>
</div>
<div class="col-md-5 col-lg-5">
<?php
if($ban!=1){
echo '<label id="lbl'.$ii.'" style="visibility: hidden;" onclick="kkk('.$ii.')">X</label>';
}
?>
</div>
</div>
<?php echo $formImage->error($modImage,'['.$ii.']image'); ?>
<div class="text-center">
<?php echo $nameQues[$ii]; ?>
</div>
</td>
<?php if($oo==1){ echo '</tr>'; $oo = -1; }
$oo++;
}}
}
?>
</table>
</div>
<div class="col-md-12 col-lg-12 MT15">
<div class="col-md-2 col-lg-2">
<?php
if(isset($search->id_verifier)){
if($search->id_verifier == userID()){
echo CHtml::submitButton('Save', array('class' => 'btn btn-success btn_formVrf btn_create_address_size GreenVrf'));
}
}
?>
</div>
</div>
<?php $this->endWidget(); ?>
</div>
function readURL(input,num) {
if (input.files && input.files[0]) {
if(input.files[0].type=='image/jpeg' || input.files[0].type=='image/gif' || input.files[0].type=='image/png'){
if(input.files[0].size>1000000){
$('#VrfImage_'+num+'_image').val('');
alert("El archivo supera el peso permitido (1MB)");
return false;
}
else{
var reader = new FileReader();
reader.onload = function (e) {
$('#img_prev'+num).css('visibility','visible');
$('#img_prev'+num).attr('src', e.target.result).width(250).height(250);
$('#lbl'+num).css('visibility','visible');
};
reader.readAsDataURL(input.files[0]);
}
}
else{
$('#VrfImage_'+num+'_image').val('');
alert("El archivo no es una imagen valida\n(debe ser JPG, JPEG, GIF o PNG y pesar maximo 1MB.)");
return false;
}
}
}
function kkk(num){
$('#img_prev'+num).css('visibility','hidden');
$('#img_prev'+num).css('height','27px');
$('#VrfImage_'+num+'_image').val('');
$('#lbl'+num).css('visibility','hidden');
}