简单的图片上传 [ 未指定版本 ]
这种是简单的图片上传只适合于jpg,gif,png适合新手练习。
方法一:
//在控制器里修改:VisaController.php
注释:vsa_img 是字段名称
public function actionCreate() {
$model = new Visa;
// Uncomment the following line if AJAX validation is needed
// $this->performAjaxValidation($model);
if (isset($_POST['Visa'])) {
$model->attributes = $_POST['Visa'];
$image = CUploadedFile::getInstance($model, 'image');
if (is_object($image) && get_class($image) === 'CUploadedFile') {
$model->vsa_img = time() . '_' . rand(0, 9999) . '.jpg';
} else {
$model->vsa_img = 'NoPic.jpg';
}
if ($model->save()) {
if (is_object($image) && get_class($image) === 'CUploadedFile') {
$image->saveAs('images/product/' . $model->vsa_img);
}
$this->redirect(array('view', 'id' => $model->visa_id));
}
}
$this->render('create', array(
'model' => $model,
));
}
//在视图里修改:_form.php
<?php
$form = $this->beginWidget('CActiveForm', array(
'id' => 'visa-form',
'enableAjaxValidation' => false,
'htmlOptions' => array('enctype' => 'multipart/form-data')
));
?>
<div class="row">
<?php echo $form->labelEx($model,'vsa_img'); ?>
<?php echo CHtml::activeFileField($model,'image'); ?>
<?php echo $form->error($model,'vsa_img'); ?>
</div>
//在模型层里修改:Visa.php
添加变量:
public $image;
在rules()函数:
allowEmpty'=>true
//的意思是可以为空
array('image', 'file', 'types'=>'jpg,gif,png', 'allowEmpty'=>true )
,
刘东东整理 高手勿喷
咔咔咔 北京
注册时间:2013-08-04
最后登录:2020-05-27
在线时长:26小时37分
最后登录:2020-05-27
在线时长:26小时37分
- 粉丝35
- 金钱535
- 威望165
- 积分2445
共 4 条评论
<pre> $this->beginWidget('CActiveForm', array( 'id' => 'visa-form', 'enableAjaxValidation' => false, 'htmlOptions' => array('enctype' => 'multipart/form-data') )); </pre>
弱弱文学,里面的id是什么意思?
id 是
<form id='visa-form' , enctype= 'multipart/form-data'> </form>
好了,我想知道
htmlOptions => ('enctype' => 'multipart/form-data' 和 '_target'=>'Right')
为什么设置不成功呢?
id 是 form的id吧
<form id='visa-form' , enctype='....' , target='....'> </form>
好了,我想知道
htmlOptions =>('enctype' => 'multipart/form-data' 和 '_target'=>'Right')
为什么设置不成功呢?
近期要用到,多谢分享。