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函数解决SQL injection
Oct 09 PHP
PHP 如何向 MySQL 发送数据
Oct 09 PHP
php 空格,换行,跳格使用说明
Dec 18 PHP
采集邮箱的php代码(抓取网页中的邮箱地址)
Jul 17 PHP
PHP基础知识回顾
Aug 16 PHP
解析PHP中的file_get_contents获取远程页面乱码的问题
Jun 25 PHP
thinkphp控制器调度使用示例
Feb 24 PHP
微信支付开发教程(一)微信支付URL配置
May 28 PHP
PHP命令行脚本接收传入参数的三种方式
Aug 20 PHP
什么是PHP文件?如何打开PHP文件?
Jun 27 PHP
thinkphp5 migrate数据库迁移工具
Feb 20 PHP
php使用filter_var函数判断邮箱,url,ip格式示例
Jul 06 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开发不能违背的安全规则 过滤用户输入
2011/05/01 PHP
php 魔术方法详解
2014/11/11 PHP
php打乱数组二维数组多维数组的简单实例
2016/06/17 PHP
永不消失的title提示代码
2007/02/15 Javascript
JavaScript页面刷新与弹出窗口问题的解决方法
2010/03/02 Javascript
Jquery从头学起第四讲 jquery入门教程
2010/08/01 Javascript
jQuery选择器源码解读(一):Sizzle方法
2015/03/31 Javascript
使用JQuery实现智能表单验证功能
2016/03/08 Javascript
对jquery的ajax进行二次封装以及ajax缓存代理组件:AjaxCache详解
2016/04/11 Javascript
JS组件Bootstrap实现下拉菜单效果代码
2016/04/26 Javascript
JavaScript中各数制转换全面总结
2017/08/21 Javascript
jQuery实现简单日期格式化功能示例
2017/09/19 jQuery
原生JS实现图片无缝滚动方法(附带封装的运动框架)
2017/10/01 Javascript
JavaScript简单编程实例学习
2020/02/14 Javascript
flexible.js实现移动端rem适配方案
2020/04/07 Javascript
[49:08]Secret vs VP 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
用python实现的去除win下文本文件头部BOM的代码
2013/02/10 Python
python使用socket进行简单网络连接的方法
2015/04/29 Python
Python引用模块和查找模块路径
2016/03/17 Python
PyQt5每天必学之布局管理
2018/04/19 Python
解决安装python库时windows error5 报错的问题
2018/10/21 Python
Python实现多态、协议和鸭子类型的代码详解
2019/05/05 Python
pandas DataFrame 警告(SettingWithCopyWarning)的解决
2019/07/23 Python
基于Python3.6中的OpenCV实现图片色彩空间的转换
2020/02/03 Python
Python 实现黑客帝国中的字符雨的示例代码
2020/02/20 Python
keras多显卡训练方式
2020/06/10 Python
婴儿地球:Baby Earth
2018/12/25 全球购物
Notino匈牙利:购买香水和化妆品
2019/04/12 全球购物
美国专业消费电子及摄影器材网站:B&H Photo Video
2019/12/18 全球购物
JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?
2013/07/02 面试题
2014年银行员工年终自我评价
2014/09/19 职场文书
2014年纪检监察工作总结
2014/11/11 职场文书
2015年秋季学校开学标语
2015/07/16 职场文书
2016春季幼儿园小班开学寄语
2015/12/03 职场文书
css3实现背景图片颜色修改的多种方式
2021/04/13 HTML / CSS
HTML5 语义化标签(移动端必备)
2021/08/23 HTML / CSS