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文本数据库的搜索方法
Oct 09 PHP
用PHP ob_start()控制浏览器cache、生成html实现代码
Feb 16 PHP
PHP中file_exists与is_file,is_dir的区别介绍
Sep 12 PHP
PHP数组循环操作详细介绍 附实例代码
Feb 03 PHP
将word转化为swf 如同百度文库般阅读实现思路及代码
Aug 09 PHP
php实现查看邮件是否已被阅读的方法
Dec 03 PHP
php计算整个mysql数据库大小的方法
Jun 19 PHP
php如何控制用户对图片的访问 PHP禁止图片盗链
Mar 25 PHP
PHP如何读取由JavaScript设置的Cookie
Mar 22 PHP
PHP生成随机数的方法总结
Mar 01 PHP
PHP mongodb操作类定义与用法示例【适合mongodb2.x和mongodb3.x】
Jun 16 PHP
php 多继承的几种常见实现方法示例
Nov 18 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数组总结篇(一)
2008/09/30 PHP
PHP的autoload自动加载机制使用说明
2010/12/28 PHP
php摘要生成函数(无乱码)
2012/02/04 PHP
php jq jquery getJSON跨域提交数据完整版
2013/09/13 PHP
php后门URL的防范
2013/11/12 PHP
php格式化电话号码的方法
2015/04/24 PHP
php判断用户是否手机访问代码
2015/06/08 PHP
Yii2创建多界面主题(Theme)的方法
2016/10/08 PHP
PHP PDOStatement::setFetchMode讲解
2019/02/03 PHP
jQuery 扩展对input的一些操作方法
2009/10/30 Javascript
IE6/7/8中Option元素未设value时Select将获取空字符串
2011/04/07 Javascript
jQuery$命名冲突怎么办如何解决
2014/01/16 Javascript
angularJS 中$attrs方法使用指南
2015/02/09 Javascript
全面解析Javascript无限添加QQ好友原理
2016/06/15 Javascript
JavaScript中最容易混淆的作用域、提升、闭包知识详解(推荐)
2016/09/05 Javascript
再谈Angular4 脏值检测(性能优化)
2018/04/23 Javascript
JQuery常用选择器功能与用法实例分析
2019/12/23 jQuery
js实现文章目录索引导航(table of content)
2020/05/10 Javascript
JS将指定的某个字符全部转换为其他字符实例代码
2020/10/13 Javascript
[49:41]NB vs NAVI Supermajor小组赛A组 BO3 第一场 6.2
2018/06/03 DOTA
Python标准库urllib2的一些使用细节总结
2015/03/16 Python
基于python的七种经典排序算法(推荐)
2016/12/08 Python
使用Matplotlib 绘制精美的数学图形例子
2019/12/13 Python
匡威德国官网:Converse德国
2019/01/26 全球购物
怎样声明一个匿名的内部类
2016/06/01 面试题
汽车专业人才自我鉴定范文
2013/12/29 职场文书
协议书样本
2014/04/23 职场文书
企业诚信承诺书
2014/05/23 职场文书
师德模范事迹材料
2014/06/03 职场文书
金融与证券专业求职信
2014/06/22 职场文书
刑事附带民事代理词
2015/05/25 职场文书
记者节感言
2015/08/03 职场文书
Apache压力测试工具的安装使用
2021/03/31 Servers
Html5调用企业微信的实现
2021/04/16 HTML / CSS
Python 使用 Frame tkraise() 方法在 Tkinter 应用程序中的Frame之间切换
2022/04/24 Python
详解Android中的TimePickerView(时间选择器)的用法
2022/04/30 Java/Android