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 $_SERVER当前完整url的写法
Nov 12 PHP
php网上商城购物车设计代码分享
Feb 15 PHP
php上传apk后自动提取apk包信息的使用(示例下载)
Apr 26 PHP
php获取服务器端mac和客户端mac的地址支持WIN/LINUX
May 15 PHP
ThinkPHP3.1新特性之内容解析输出详解
Jun 19 PHP
国产PHP开发框架myqee新手快速入门教程
Jul 14 PHP
PHP图片处理之图片旋转和图片翻转实例
Nov 19 PHP
PHP callback函数使用方法和注意事项
Jan 23 PHP
php数组随机排序实现方法
Jun 13 PHP
PHP排序算法之冒泡排序(Bubble Sort)实现方法详解
Apr 20 PHP
PHP5.0~5.6 各版本兼容性cURL文件上传功能实例分析
May 11 PHP
laravel 实现登陆后返回登陆前的页面方法
Oct 03 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绝对路径与相对路径之间关系的的分析
2010/03/03 PHP
php导出csv格式数据并将数字转换成文本的思路以及代码分享
2014/06/05 PHP
php实现上传图片文件代码
2015/07/19 PHP
Laravel框架使用monolog_mysql实现将系统日志信息保存到mysql数据库的方法
2018/08/16 PHP
驱动事件的addEvent.js代码
2007/03/27 Javascript
jQuery中与toggleClass等价的程序段 以及未来学习的方向
2010/03/18 Javascript
jQuery.Validate 使用笔记(jQuery Validation范例 )
2010/06/25 Javascript
JS实现商品倒计时实现代码
2013/05/03 Javascript
php显示当前文件所在的文件以及文件夹所有文件以树形展开
2013/12/13 Javascript
Jqgrid设置全选(选择)及获取选择行的值示例代码
2013/12/28 Javascript
jQuery大于号(&gt;)选择器的作用解释
2015/01/13 Javascript
JavaScript判断是否为数组的3种方法及效率比较
2015/04/01 Javascript
Javascript节点关系实例分析
2015/05/15 Javascript
jQuery xml字符串的解析、读取及查找方法
2016/03/01 Javascript
如何使用Bootstrap创建表单
2017/03/29 Javascript
JavaScript变量声明var,let.const及区别浅析
2018/04/23 Javascript
在vue项目中引用Iview的方法
2018/09/14 Javascript
动态内存分配导致影响Javascript性能的问题
2018/12/18 Javascript
详解如何使用node.js的开发框架express创建一个web应用
2018/12/20 Javascript
小程序如何在不同设备上自适应生成海报的实现方法
2019/08/20 Javascript
[56:38]DOTA2-DPC中国联赛正赛Aster vs Magma BO3 第一场 3月5日
2021/03/11 DOTA
python3.3实现乘法表示例
2014/02/07 Python
Python 实现域名解析为ip的方法
2019/02/14 Python
Python While循环语句实例演示及原理解析
2020/01/03 Python
python 日志 logging模块详细解析
2020/03/31 Python
python3.7.3版本和django2.2.3版本是否可以兼容
2020/09/01 Python
美国领先的户外服装与装备用品店:Moosejaw
2016/08/25 全球购物
去加拿大的旅行和假期:Canadian Affair
2016/10/25 全球购物
西班牙英格列斯百货英国官网:El Corte Inglés英国
2017/10/30 全球购物
德国圣伯纳德草药屋:Kräuterhaus Sanct Bernhard(有中文站)
2018/08/05 全球购物
新西兰最大的连锁超市:Countdown
2020/06/04 全球购物
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?用contains来区分是否有重复的对象。还是都不用
2013/07/30 面试题
武汉世纪畅想数字传播有限公司 .NET笔试题
2015/06/13 面试题
应届大专毕业生个人自荐信
2013/09/22 职场文书
小学开学典礼主持词
2014/03/19 职场文书
《我爱祖国》演讲稿1000字
2014/09/26 职场文书