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 相关文章推荐
使用 MySQL 开始 PHP 会话
Dec 21 PHP
兼容PHP5的PHP目录管理函数库
Jul 10 PHP
一篇有意思的技术文章php介绍篇
Oct 26 PHP
php中修改浏览器的User-Agent来伪装你的浏览器和操作系统
Jul 29 PHP
利用yahoo汇率接口实现实时汇率转换示例 汇率转换器
Jan 14 PHP
从零开始学YII2框架(二)通过 Composer 安装扩展插件
Aug 20 PHP
PHP使用PHPexcel导入导出数据的方法
Nov 14 PHP
php中二分法查找算法实例分析
Sep 22 PHP
PHP 序列化和反序列化函数实例详解
Jul 18 PHP
一个非常实用的php文件上传类
Jul 04 PHP
PHP实现的解汉诺塔问题算法示例
Aug 06 PHP
如何运行/调试你的PHP代码
Oct 23 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
JS写的数字拼图小游戏代码[学习参考]
2008/10/29 Javascript
iframe 自适应高度[在IE6 IE7 FF下测试通过]
2009/04/13 Javascript
JS 实现双色表格实现代码
2009/11/24 Javascript
js 函数调用模式小结
2011/12/26 Javascript
html5的自定义data-*属性和jquery的data()方法的使用示例
2013/08/21 Javascript
Javascript递归打印Document层次关系实例分析
2015/05/15 Javascript
将JavaScript的jQuery库中表单转化为JSON对象的方法
2015/11/17 Javascript
JS实现左右无缝轮播图代码
2016/05/01 Javascript
json传值以及ajax接收详解
2016/05/24 Javascript
浅谈jquery设置和获得checkbox选中的问题
2016/08/19 Javascript
React-router中结合webpack实现按需加载实例
2017/05/25 Javascript
vue.js todolist实现代码
2017/10/29 Javascript
Vue下的国际化处理方法
2017/12/18 Javascript
Angular实现下拉框模糊查询功能示例
2018/01/03 Javascript
nodejs实现的连接MySQL数据库功能示例
2018/01/25 NodeJs
JavaScript面向对象程序设计创建对象的方法分析
2018/08/13 Javascript
laydate时间日历插件使用方法详解
2018/11/14 Javascript
Python实现备份文件实例
2014/09/16 Python
Python 的 Socket 编程
2015/03/24 Python
在Python中使用SimpleParse模块进行解析的教程
2015/04/11 Python
Pytoch之torchvision.transforms图像变换实例
2019/12/30 Python
在Tensorflow中查看权重的实现
2020/01/24 Python
Python selenium使用autoIT上传附件过程详解
2020/05/26 Python
HTML5 Canvas——用路径描画线条实例介绍
2013/06/09 HTML / CSS
美国男女折扣服饰百货连锁店:Stein Mart
2017/05/02 全球购物
Vertbaudet西班牙网上商店:婴儿服装、童装、母婴用品和儿童家具
2019/10/16 全球购物
介绍一下Java中的static关键字
2012/05/12 面试题
物理专业本科生自荐信
2014/01/30 职场文书
应聘护理专业毕业自荐书范文
2014/02/12 职场文书
民族团结先进个人事迹材料
2014/06/02 职场文书
机关副主任个人四风问题整改措施
2014/09/26 职场文书
2014年园林绿化工作总结
2014/12/11 职场文书
班级联欢会主持词
2015/07/03 职场文书
浅谈由position属性引申的css进阶讨论
2021/05/25 HTML / CSS
JS中forEach()、map()、every()、some()和filter()的用法
2022/05/11 Javascript
MySQL中EXPLAIN语句及用法
2022/05/20 MySQL