hi i am doing multiple file upload in yii...
i have setup form to use multiple file upload like this...
myfrom.php
<?php
$form=$this->beginWidget('CActiveForm', array(
'id'=>'topic-form',
'enableAjaxValidation'=>false,
'htmlOptions' => array('enctype' => 'multipart/form-data'), // ADD THIS
));
?>
<div class="row">
<?php
$this->widget('CMultiFileUpload', array(
'name' => 'imagepath',
'model'=> $model,
'id'=>'imagepath',
'accept' => 'jpeg|jpg|gif|png', // useful for verifying files
'duplicate' => 'Duplicate file!', // useful, i think
'denied' => 'Invalid file type', // useful, i think
));
?>
<div class="row buttons">
<?php echo CHtml::submitButton($model->isNewRecord ? 'Create' : 'Save'); ?>
</div>
</div>
<?php $this->endWidget(); ?>
and my controller method looks like...
public function actionMultipleupload()
{
$model= new Uploadimage();
if(isset($_POST['Uploadimage']))
{
var_dump("inside if");
// $images = CUploadedFile::getInstancesByName('images');
}
var_dump("out side if");
$this->render('multipleupload',array('model'=>$model));
}
but it's going inside if loop only if i am using Multiple file upload widget... (if($_POST['Uploadimage'])
it's working fine with single file upload (shown below) and uploading also... but it showing problem in multiple file upload..
<div class="row">
<?php echo $form->labelEx($model,'imagepath'); ?>
<?php echo CHtml::activeFileField($model,'imagepath',array('size'=>60,'maxlength'=>500)); ?>
<?php echo $form->error($model,'imagepath'); ?>
</div>
i don't what's going wrong with my code... i am referring this post
i resolved the problem i am place my sample code below..
View page
<div class="row">
<?php echo $form->labelEx($model,'image'); ?>
<?php
$this->widget('CMultiFileUpload', array(
'model'=>$model,
'name'=>'image',
'attribute'=>'image',
'accept'=>'jpg|gif|png',
'max'=>4,
'remove'=>'Remove Image ',
'duplicate'=>'Already Selected',
));
?>
<?php echo CHtml::submitButton($model->isNewRecord ? 'Upload' : 'Save'); ?>
controller
$model=new Imgtable;
// Uncomment the following line if AJAX validation is needed
$this->performAjaxValidation($model);
Yii::log("actionCreate actionCreate " .isset($_POST['Imgtable']));
if(isset($_POST['Imgtable']))
{
$model->attributes=$_POST['Imgtable'];
Yii::log("actionCreate actionCreate inside if" .isset($_POST['Imgtable']));
$images = CUploadedFile::getInstancesByName('image');
Yii::log("actionCreate actionCreate inside if" .count($images));
if(isset($images) && count($images)> 0)
{
foreach ($images as $image=>$pic)
{
if ($pic->saveAs(Yii::getPathOfAlias('webroot').'/images/'.$pic->name,0777))
{
$model=new Imgtable;
//$file = CUploadedFile::getInstance($model,'binaryfile');
$model->fileName = $pic->name;
$model->fileType = $pic->type;
$url = Yii::getPathOfAlias('webroot').'/images/';
Yii::log("actionCreate actionCreate inside if if" .$pic->name);
$fp = fopen($url.$pic->name, 'r');
$content = fread($fp, filesize($url.$pic->name));
fclose($fp);
$model->binaryfile = $content;
$mode = new Productdata;
$last_invoice = Productdata::model()->find(array('order'=>'id DESC'));
$last_invoice_number = str_replace("INV:", "", $last_invoice->id);
$new_invoice_number = $last_invoice_number;
$model->product_id = $new_invoice_number;
//$model->setIsNewRecord(true);
//$model->id = null;
// $model->image = $pic->name;
$model->insert();
}
}
$this->redirect(array('view','id'=>$model->id));
}
}
$this->render('create',array(
'model'=>$model,
));