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 相关文章推荐
使用adodb lite解决问题
Dec 31 PHP
php 代码优化的42条建议 推荐
Sep 25 PHP
自定义php类(查找/修改)xml文档
Mar 26 PHP
利用PHP实现图片等比例放大和缩小的方法详解
Jun 06 PHP
PHP字符串的递增和递减示例介绍
Feb 11 PHP
php反射应用示例
Feb 25 PHP
PHP正则表达式 /i, /is, /s, /isU等介绍
Oct 23 PHP
ThinkPHP无限级分类原理实现留言与回复功能实例
Oct 31 PHP
PHP遍历数组的方法汇总
Apr 30 PHP
php多线程实现方法及用法实例详解
Oct 26 PHP
PHPExcel笔记, mpdf导出
May 03 PHP
PHP实现基本留言板功能原理与步骤详解
Mar 26 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
初学者入门:细述PHP4的核心Zend
2006/09/05 PHP
兼容ie6浏览器的php下载文件代码分享
2014/07/14 PHP
php ImageMagick windows下安装教程
2015/01/26 PHP
PHP 信号管理知识整理汇总
2017/02/19 PHP
Yii框架实现的验证码、登录及退出功能示例
2017/05/20 PHP
利用Laravel生成Gravatar头像地址的优雅方法
2017/12/30 PHP
PHP实现上传图片到数据库并显示输出的方法
2018/05/31 PHP
PHP如何获取Cookie并实现模拟登录
2020/07/16 PHP
php命令行模式代码实例详解
2021/02/26 PHP
不用写JS也能使用EXTJS视频演示
2008/12/29 Javascript
使用JS画图之点、线、面
2015/01/12 Javascript
jQuery+php实时获取及响应文本框输入内容的方法
2016/05/24 Javascript
js实现带三角符的手风琴效果
2017/03/01 Javascript
ES5 ES6中Array对象去除重复项的方法总结
2017/04/27 Javascript
layui关闭弹窗后刷新主页面和当前更改项的例子
2019/09/06 Javascript
java遇到微信小程序 &quot;支付验证签名失败&quot; 问题解决
2019/12/22 Javascript
Vue如何实现验证码输入交互
2020/12/07 Vue.js
[17:13]DOTA2 HEROS教学视频教你分分钟做大人-斯拉克
2014/06/13 DOTA
[53:44]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Magma BO3 第一场 1月31日
2021/03/11 DOTA
Zookeeper接口kazoo实例解析
2018/01/22 Python
Python 数据处理库 pandas进阶教程
2018/04/21 Python
Python 2.7中文显示与处理方法
2018/07/16 Python
python判断输入日期为第几天的实例
2018/11/13 Python
将python文件打包成EXE应用程序的方法
2019/05/22 Python
使用Flask-Cache缓存实现给Flask提速的方法详解
2019/06/11 Python
学习python需要有编程基础吗
2020/06/02 Python
DJI大疆德国官方商城:大疆无人机
2018/09/01 全球购物
中科方德软件测试面试题
2016/04/21 面试题
中医专业应届生求职信
2013/11/17 职场文书
CAD制图设计师自荐信
2014/01/29 职场文书
升国旗演讲稿
2014/09/05 职场文书
房产公证书格式
2015/01/26 职场文书
2015年市场部工作总结
2015/04/30 职场文书
2015年路政工作总结
2015/05/22 职场文书
八年级作文之一起的走过日子
2019/09/17 职场文书
pytorch中的model.eval()和BN层的使用
2021/05/22 Python