yii框架上传(含model层)

本文介绍了一个使用Yii2框架实现文件上传的例子,包括创建模型、视图及控制器的具体步骤,并展示了如何验证上传文件及将其保存到指定目录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先建立一个模型models/UploadForm.php,内容如下

namespace app\models;

use yii\base\Model;
use yii\web\UploadedFile;

/**
 * UploadForm is the model behind the upload form.
 */
class UploadForm extends Model
{
    /**
     * @var UploadedFile file attribute
     */
    public $file;

    /**
     * @return array the validation rules.
     */
    public function rules()
    {
        return [
            [['file'], 'file'],
        ];
    }

}

再建立一个视图文件,内容如下

<?php
use yii\widgets\ActiveForm;
use yii\helpers\Html;
?>


<?php $form = ActiveForm::begin([
'options' => ['enctype' => 'multipart/form-data',],
'action' => ['test2/index'],//提交地址
'method' => 'post',//提交方法
]) ?>


<?= $form->field($model, 'file')->fileInput() ?><!----上传框---->


<?php echo Html::submitButton('上传')?><!----提交按钮---->


<?php ActiveForm::end() ?>控制器<?php
namespace frontend\controllers;


use Yii;
use yii\web\Controller;
use yii\filters\AccessControl;
use yii\db\Query;
use yii\data\Pagination;
use app\models\UploadForm;
use yii\web\UploadedFile;


class Test2Controller extends Controller
{
	public function actionIndex(){
        $model = new UploadForm();


        if (Yii::$app->request->isPost) {
            $model->file = UploadedFile::getInstance($model, 'file');
           	// var_dump($model->file);die;
           	// var_dump($model->validate());die;
            if ($model->file && $model->validate()) {
            	$filename = time().rand(1000,9999). '.' . $model->file->extension;               
                $model->file->saveAs('uploads/' . $filename);//将临时文件存储到指定路径(记得在web中新建uploads文件夹)
            }
        }


        return $this->render('index', ['model' => $model]);
	}




}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值