Home >PHP Framework >YII >yii implements image uploading
The specific code is as follows:
(Recommended tutorial: yii)
1, model
<?php namespace frontend\models; use yii\base\Model; use yii\web\UploadedFile; use yii\db\ActiveRecord; use yii\db\Query; class UploadForm extends ActiveRecord { /** * @var UploadedFile */ public $t_img; public $t_title; public $t_content; public function rules() { return [ [['t_img'], 'file', 'skipOnEmpty' => false, 'extensions' => 'png, jpg,bmp,jpeg'], ]; } public function attributeLabels() { return [ 't_img'=>'请上传文章图片', 'verifyCode' => '请在右面输入验证码', ]; } public function upload() { $imgName=time().rand(100,999).".".$this->t_img->extension; if ($this->validate()) { $this->t_img->saveAs('uploads/' .$imgName); $path='uploads/' .$imgName; return $path; } else { return false; } } } ?>
2. Controller
$data=Yii::$app->request->post(); $data['t_addtime']=date('Y-m-d H:i:s'); $upload->t_img = UploadedFile::getInstance($upload, 't_img'); $path=$upload->upload();
3. View layer
<?php use yii\widgets\ActiveForm; use yii\helpers\Html; use yii\helpers\Url; ?> <?=Html::a('返回','?r=course/classspace&c_id='.$c_id)?> <?php $form=ActiveForm::begin( [ 'options' => ['enctype' => 'multipart/form-data'], 'method'=>'POST', ] );?> <table class="table"> <tr> <td> <input type="text" placeholder="请填写话题标题" name="t_title" id="t_title" value=<?=$coursedraft['d_title']?> > </td> </tr> <tr> <td> <textarea name="t_content" id="t_content" cols="30" rows="10" placeholder="请填写话题内容"><?=$coursedraft['d_content']?></textarea> </td> </tr> <tr> <td> <?=$form->field($upload,'t_img')->fileInput()?> </td> </tr> <tr> <div class="btn-group"> <td> <?=Html::submitButton('提交话题',['class'=>'btn btn-success'])?> </td> </div> </tr> </table> <?php ActiveForm::end();?> <input type="hidden" value=<?=$c_id?> id="c_id" /> </body> <?php $js = <<<END $(function(){ // $(document).on('click','#caogao',function() { // var title = $("#t_title").val(); // var content = $("#t_content").val(); // // $.ajax({ // type: "POST", // url: "?r=course/coursedraft", // data: {t_title: title, t_content: content, d_id: d_id} // }) // }) function show(){ var title=$("#t_title").val(); var content=$("#t_content").val(); var c_id=$('#c_id').val(); $.ajax({ type: "POST", url: "?r=course/coursedraft", data: {d_title:title,d_content:content,c_id:c_id,d_state:0} }); } setInterval(show,5000); }) END; $this->registerJs($js); ?> </html>
The above is the detailed content of yii implements image uploading. For more information, please follow other related articles on the PHP Chinese website!