yii2 上传图片的示例代码


Posted in PHP onNovember 02, 2018

第一步: 搭建上传类基础工作,具体请看://3water.com/article/120242.htm

第二步:建站一个product表,字段id,name,picurl.

第三步:生GII生成PRODUCT 模型,类,视图。

第四步:

main.css 放在frontend\web\css

.onedialog{position:absolute; left: 300px; top: 500px; z-index: 10; width: 700px; height: 400px;border-radius:5px;box-shadow:5px 2px 6px #000; border: 2px solid #666}
.oneiframe{ width: 100%; height: 100% }

main.js 放在 frontend\web\assets

$(function(){
 $('#product-picurl').click(function(){
 $('#oneupload').remove();
 $('<div>').appendTo($('body')).attr({"class":"onedialog",'id':"oneupload"});
 $('<iframe>').appendTo($('#oneupload')).attr({"src":"?r=upload","class":"oneiframe"})
 });
  var v=$('#product-picurl').val();
 if(v){
 $('<img>').attr({"src":v,"style":"height:50px"}).insertAfter($('#product-picurl'));
 }
});

然后在frontend\assets\AppAsset.php中注册这两个文件

class AppAsset extends AssetBundle
{
  public $basePath = '@webroot';
  public $baseUrl = '@web';
  public $css = [
    'css/site.css',
    'css/main.css',
  ];
  public $js = [
    'assets/main.js'
  ];
  public $depends = [
    'yii\web\YiiAsset',
    'yii\bootstrap\BootstrapAsset',
  ];
}

UploadController.php

<?PHP
namespace frontend\controllers;

use Yii;
use yii\web\Controller;
use app\models\UploadForm;
use yii\web\UploadedFile;

class UploadController extends Controller
{
  public function actionIndex()
  {
    $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);      
        $fileName='uploads/' . date("YmdHis") . '.' . $model->file->extension;
        $model->file->saveAs($fileName);
      }
      echo "<script src='assets/upload.js'></script>;";
      echo "<script>";
      echo "var oneinput=parent.document.getElementById('product-picurl');";
      echo "parent.document.getElementById('product-picurl').value='".$fileName."';";
      echo "var oneupload = parent.document.getElementById('oneupload');";
      echo "var img = document.createElement('img');";
      echo "img.setAttribute('style', 'height:50px');";
      echo "img.src ='".$fileName."';";
      echo "insertAfter(img,oneinput);";
      echo "oneupload.parentNode.removeChild(oneupload)";
      echo "</script>";
    }

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

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'],
    ];
  }
}
?>

upload.php

<?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 相关文章推荐
关于在php.ini中添加extension=php_mysqli.dll指令的说明
Jun 14 PHP
php 缓存函数代码
Aug 27 PHP
php mssql 分页SQL语句优化 持续影响
Apr 26 PHP
PHP中的float类型使用说明
Jul 27 PHP
浅析PHP程序防止ddos,dns,集群服务器攻击的解决办法
Jun 18 PHP
浅析十款PHP开发框架的对比
Jul 05 PHP
php利用curl抓取新浪微博内容示例
Apr 27 PHP
PHP中的替代语法介绍
Jan 09 PHP
ubuntu下配置nginx+php+mysql详解
Sep 10 PHP
浅谈PHP错误类型及屏蔽方法
May 27 PHP
PHP 实现从数据库导出到.csv文件方法
Jul 06 PHP
PHP命名空间(namespace)原理与用法详解
Dec 11 PHP
yii2实现Ueditor百度编辑器的示例代码
Nov 02 #PHP
php 调用百度sms来发送短信的实现示例
Nov 02 #PHP
Linux下 php7安装redis的方法
Nov 01 #PHP
PHP结合Ffmpeg快速搭建流媒体服务的实践记录
Oct 31 #PHP
php图片裁剪函数
Oct 31 #PHP
php+js实现裁剪任意形状图片
Oct 31 #PHP
workerman结合laravel开发在线聊天应用的示例代码
Oct 30 #PHP
You might like
又一个php 分页类实现代码
2009/12/03 PHP
用PHP实现读取和编写XML DOM代码
2010/04/07 PHP
解析如何屏蔽php中的phpinfo()函数
2013/06/06 PHP
ThinkPHP文件上传实例教程
2014/08/22 PHP
五款PHP代码重构工具推荐
2014/10/14 PHP
PHP的Yii框架中使用数据库的配置和SQL操作实例教程
2016/03/17 PHP
PHP入门教程之字符串处理技巧总结(转换,过滤,解析,查找,截取,替换等)
2016/09/11 PHP
php-msf源码详解
2017/12/25 PHP
在浏览器窗口上添加遮罩层的方法
2012/11/12 Javascript
Underscore.js常用方法总结
2015/02/28 Javascript
JQuery限制复选框checkbox可选中个数的方法
2015/04/20 Javascript
Javascript获取图片原始宽度和高度的方法详解
2016/09/20 Javascript
jQuery图片轮播(二)利用构造函数和原型创建对象以实现继承
2016/12/06 Javascript
原生js实现打字动画游戏
2017/02/04 Javascript
深入浅析ES6 Class 中的 super 关键字
2017/10/20 Javascript
在Vue项目中使用d3.js的实例代码
2018/05/01 Javascript
Preload基础使用方法详解
2020/02/03 Javascript
JavaScript代码压缩工具UglifyJS和Google Closure Compiler的基本用法
2020/04/13 Javascript
浅谈Vuex的this.$store.commit和在Vue项目中引用公共方法
2020/07/24 Javascript
详解Python中的多线程编程
2015/04/09 Python
Python实现爬取逐浪小说的方法
2015/07/07 Python
apache部署python程序出现503错误的解决方法
2017/07/24 Python
Python列表list操作符实例分析【标准类型操作符、切片、连接字符、列表解析、重复操作等】
2017/07/24 Python
Python实现将多个空格换为一个空格.md的方法
2018/12/20 Python
Python玩转PDF的各种骚操作
2019/05/06 Python
numpy和pandas中数组的合并、拉直和重塑实例
2019/06/28 Python
python psutil监控进程实例
2019/12/17 Python
提升python处理速度原理及方法实例
2019/12/25 Python
详解java调用python的几种用法(看这篇就够了)
2020/12/10 Python
python实现马丁策略回测3000只股票的实例代码
2021/01/22 Python
日本著名的平价时尚女性购物网站:Fifth
2016/08/24 全球购物
销售所有的狗狗产品:Dog.com
2016/10/13 全球购物
乐天旅游香港网站:日本饭店预订
2017/11/29 全球购物
高级护理实习生自荐信
2013/09/28 职场文书
乔布斯辞职信(中英文对照)
2015/05/12 职场文书
《家庭教育》读后感3篇
2019/12/18 职场文书