Yii2使用自带的UploadedFile实现的文件上传

5年以前  |  阅读数:1057 次  |  编程语言:PHP 

我们先来看看在yii2中支持的图片上传怎么进行处理的。

首先我们创建model\Upload.php文件


    <?php
    namespace backend\models;
    use Yii;
    use yii\web\UploadedFile;
    class Upload extends \yii\db\ActiveRecord
    {
    /**
    * @var UploadedFile|Null file attribute
    */
    public $file;
    /**
    * @return array the validation rules.
    */
    public function rules()
    {
    return [
    [["file"], "file",],
    ];
    }
    }

下面我们看看view层是怎么渲染的


    <?php
    use yii\widgets\ActiveForm;
    $form = ActiveForm::begin(["options" => ["enctype" => "multipart/form-data"]]); ?>
    <?= $form->field($model, "file")->fileInput() ?>
    <button>Submit</button>
    <?php ActiveForm::end(); ?>

最后实现controller层的实现


    namespace backend\controllers;
    use backend\models\Upload;
    use yii\web\UploadedFile;
    class ToolsController extends \yii\web\Controller
    {
    /**
    * 文件上传
    * 我们这里上传成功后把图片的地址进行返回
    */
    public function actionUpload ()
    {
    $model = new Upload();
    $uploadSuccessPath = "";
    if (Yii::$app->request->isPost) {
    $model->file = UploadedFile::getInstance($model, "file");
    //文件上传存放的目录
    $dir = "../../public/uploads/".date("Ymd");
    if (!is_dir($dir))
    mkdir($dir);
    if ($model->validate()) {
    //文件名
    $fileName = date("HiiHsHis").$model->file->baseName . "." . $model->file->extension;
    $dir = $dir."/". $fileName;
    $model->file->saveAs($dir);
    $uploadSuccessPath = "/uploads/".date("Ymd")."/".$fileName;
    }
    }
    return $this->render("upload", [
    "model" => $model,
    "uploadSuccessPath" => $uploadSuccessPath,
    ]);
    }
    }

以上所述是小编给大家介绍的Yii2使用自带的UploadedFile实现的文件上传的相关知识,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例