yii2利用自带UploadedFile上传图片

创建一个 models/UploadForm.php:

<?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;
?>

<?php $form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data']]) ?>

<?= $form->field($model, 'file')->fileInput() ?>

    <button>Submit</button>

<?php ActiveForm::end() ?>

控制器

<?php
use app\models\UploadForm;
use yii\web\UploadedFile;

public function actionUpload()
{
    $model = new UploadForm();

    if (\Yii::$app->request->isPost) {
        $model->file = UploadedFile::getInstance($model, 'file');

        if ($model->file && $model->validate()) {
            $model->file->saveAs('uploads/' . $model->file->baseName . '.' . $model->file->extension);
        }
    }

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

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-12-18 15:15:53

yii2利用自带UploadedFile上传图片的相关文章

zabbix利用自带的模板监控mysql数据库

zabbix利用自带的模板监控mysql数据库 作者:尹正杰 有些东西你不会的时候觉得它特别难,但是当你去做的时候就发现如此的简单~zabbix功能的强大我在这里就不多说了,好不好 使你用用就知道了,哈哈······, 其实zabbix监控agent端的mysql数据库原理上很简单,就是你需要在zabbix客户端新建一个用户,这个用户的账号密码存放到 隐藏的文件中,(也是考虑安全性嘛~),服务端通过读取这个配置文件的用户密码去登陆数据库,然后把采集的结果反馈给客户端, 切记我们这里不要给root

ZABBIX利用自带模板监控mysql数据库

***** ZABBIX利用自带模板监控mysql数据库**** 监控效果图 增删改查 慢查询 每秒总执行次数 1. 进入主题:先搭建好zabbix服务器,并把mysql作为agent端(建议先在线下测试好,再上生产环境). 2.zabbix_agent端(即mysql服务器,下同)使用which mysqladmin.which mysql查看命令行的绝对路径,修改脚本chk_mysql.sh脚本链接为http://blog.51cto.com/12131824/2344356 3.在mysq

Yii2 利用controllerMap自定义控制器类

版权声明:本文为博主原创文章,未经博主允许不得转载. Yii2框架为我们自定义好的  controllers,Models,views,标准的MVC结构框架,但是有些时候我们写接口希望结构更加清晰而不希望与其他控制器放在一起,想自定义文件夹作为API的控制器类,下面就介绍利用yii的controllerMap来自定义我们的API控制器. 首先创建我们的API文件夹结构如下 : ApiController.PHP: [php] view plain copy <?php /** * Created

[YII2] 去除自带js,加载自己的JS,然后ajax(json)传值接值!

本想用YII2自带的JS,可是用着效果不好,想从新加载,找了好多终于实现啦!还有ajax(json)传值接值! 首先直接了当的就把YII2自带的js去掉! 把下面代码加入到/config/main.php文件'components'=>[]里面,可以禁掉CSS和JS 1 'components' => [ 2 ............. 3 //不加载YII2自带JS以及CSS 4 'assetManager'=>[ 5 'bundles'=>[ 6 'yii\bootstrap\

【Java】利用自带的file.mkdirs();创建文件夹与file.mkdirs();的注意事项

利用Java的自带命令file.mkdirs();是可以直接在系统创建文件夹的. 比如在d:\1文件夹下创建一个2的文件夹,则这样写: import java.io.*; public class FileMkdirTest { public static void main(String[] args) { File file = new File("d:\\1\\2"); //如果d:\1\2这个文件夹不存在,才创建 if (!file.exists()) { file.mkdir

Yii2中自带分页类实现分页

转 http://www.cnblogs.com/gyrgyr/p/5249392.html 1.首先写控制器层 先引用pagination类 use yii\data\Pagination; 写自己的方法: function actionFenye(){        $data = Field::find();  //Field为model层,在控制器刚开始use了field这个model,这儿可以直接写Field,开头大小写都可以,为了规范,我写的是大写        $pages = n

利用FluorineFx的ByteArray上传图片

Flex端利用new PNGEncoder().encode(bitmapData)将png图片转换为ByteArray,然后传给服务器,服务端需要定义一个public ByteArray UploadImage(ByteArray ba)方法 服务器端相关代码 using System; using System.Collections.Generic; using System.Text; using System.IO; using System.Drawing; using System

yii2 利用小部件生成后台左边菜单栏

************   模型层递归查询权限   ************ /**     * 递归方式查询权限     */    public function getPrivilege()    {        $connection = \Yii::$app->db;        $top=$command = $connection->createCommand('SELECT * FROM privilege')->queryAll();               

YII2.0自带分页

普通分页 1.建立模型 参考前几篇的内容. 2.控制器层 1)先引用分页类Pagination use app\models\Position; use yii\data\Pagination; 2) 写自己的方法:    public function actionPositionList(){ //分页及列表展示 $query = Position::find(); //使用模型,变量名随意,但要注意和后面对应 $page = new Pagination(['totalCount' =>