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手机号码归属地查询代码(API接口/mysql)
Sep 04 PHP
ajax取消挂起请求的处理方法
Mar 18 PHP
php格式化日期实例分析
Nov 12 PHP
如何把php5.3版本升级到php5.4或者php5.5
Jul 31 PHP
PHP将MySQL的查询结果转换为数组并用where拼接的示例
May 13 PHP
thinkPHP3.x常量整理(预定义常量/路径常量/系统常量)
May 20 PHP
PHP单态模式简单用法示例
Nov 16 PHP
PHP并发查询MySQL的实例代码
Aug 09 PHP
thinkphp3.2.0 setInc方法 源码全面解析
Jan 29 PHP
PHP使用SMTP邮件服务器发送邮件示例
Aug 28 PHP
Laravel框架基础语法与知识点整理【模板变量、输出、include引入子视图等】
Dec 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 empty函数 使用说明
2009/08/10 PHP
深入理解PHP中的Session和Cookie
2013/06/21 PHP
Laravel框架学习笔记(一)环境搭建
2014/10/15 PHP
PHP实现基于栈的后缀表达式求值功能
2017/11/10 PHP
Yii2.0框架模型多表关联查询示例
2019/07/18 PHP
jQuery与其它库冲突的解决方法
2010/06/25 Javascript
基于jQuery的模仿新浪微博时间的组件
2011/10/04 Javascript
document.all的一个比较完整的总结及案例
2013/01/31 Javascript
JS文本框不能输入空格验证方法
2013/03/19 Javascript
javascript通过navigator.userAgent识别各种浏览器
2013/10/25 Javascript
利用了jquery的ajax实现二级联互动菜单
2013/12/02 Javascript
原生JavaScript实现动态省市县三级联动下拉框菜单实例代码
2016/02/03 Javascript
javascript高级选择器querySelector和querySelectorAll全面解析
2016/04/07 Javascript
一个用jquery写的判断div滚动条到底部的方法【推荐】
2016/04/29 Javascript
AngularJS动态加载模块和依赖的方法分析
2016/11/08 Javascript
layui文件上传实现代码
2017/05/20 Javascript
原生JavaScript实现的简单省市县三级联动功能示例
2017/05/27 Javascript
jquery获取select选中值的文本,并赋值给另一个输入框的方法
2018/08/21 jQuery
JavaScript常见事件处理程序实例总结
2019/01/05 Javascript
vue-cli4.x创建企业级项目的方法步骤
2020/06/18 Javascript
使用python实现http及ftp服务进行数据传输的方法
2018/10/26 Python
python学生管理系统开发
2019/01/30 Python
GitHub 热门:Python 算法大全,Star 超过 2 万
2019/04/29 Python
Pandas 重塑(stack)和轴向旋转(pivot)的实现
2019/07/22 Python
python字符串分割及字符串的一些常规方法
2019/07/24 Python
详解Python3 pickle模块用法
2019/09/16 Python
解决pyinstaller打包运行程序时出现缺少plotly库问题
2020/06/02 Python
UGG雪地靴荷兰官网:UGG荷兰
2016/09/09 全球购物
Melissa鞋英国官方网站:Nonnon
2019/05/01 全球购物
如何将整数int转换成字串String
2014/03/21 面试题
毕业生就业自荐信
2013/12/04 职场文书
市场开发与营销专业求职信
2013/12/31 职场文书
法制宣传月活动总结
2014/04/29 职场文书
镇班子对照检查材料思想汇报
2014/09/24 职场文书
换届选举主持词
2015/07/03 职场文书
golang 语言中错误处理机制
2021/08/30 Golang