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提取中文首字母
Apr 09 PHP
php中经典方法实现判断多维数组是否为空
Oct 23 PHP
php 函数中使用static的说明
Jun 01 PHP
PHP时间戳与日期之间转换的实例介绍
Apr 19 PHP
php获取当前时间的毫秒数的方法
Jan 26 PHP
php实现根据字符串生成对应数组的方法
Sep 22 PHP
PHP实现自动对图片进行滚动显示的方法
Mar 12 PHP
将PHP程序中返回的JSON格式数据用gzip压缩输出的方法
Mar 03 PHP
thinkPHP5项目中实现QQ第三方登录功能
Oct 20 PHP
PHP封装的XML简单操作类完整实例
Nov 13 PHP
phpstorm 正则匹配删除空行、注释行(替换注释行为空行)
Jan 21 PHP
php解压缩zip和rar压缩包文件的方法
Jul 10 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使用imagick读取PDF生成png缩略图的两种方法
2014/03/20 PHP
php判断GIF图片是否为动画的方法
2020/09/04 PHP
PHP读取文件内容的五种方式
2015/12/28 PHP
PHP汉字转换拼音的函数代码
2015/12/30 PHP
php opendir()列出目录下所有文件的实例代码
2016/10/02 PHP
PHP如何将图片文件上传到另外一台服务器上
2019/08/26 PHP
nicejforms——美化表单不用愁
2007/02/20 Javascript
文本链接逐个出现的js脚本
2007/12/12 Javascript
JS分页效果示例
2013/10/11 Javascript
js实现的折叠导航示例
2013/11/29 Javascript
Jquery幻灯片特效代码分享--鼠标点击按钮时切换(1)
2015/08/15 Javascript
js模仿java的Map集合详解
2016/01/06 Javascript
JS实现关闭当前页而不弹出提示框的方法
2016/06/22 Javascript
一个例子轻松学会Vue.js
2017/01/02 Javascript
bootstrap选项卡使用方法解析
2017/01/11 Javascript
微信小程序实时聊天WebSocket
2018/07/05 Javascript
小程序实现列表多个批量倒计时
2021/01/29 Javascript
更强大的vue ssr实现预取数据的方式
2019/07/19 Javascript
layui 监听select选择 获取当前select的ID名称方法
2019/09/24 Javascript
vue 解决文本框被键盘遮住的问题
2019/11/06 Javascript
Vue 打包体积优化方案小结
2020/05/20 Javascript
详解python中__name__的意义以及作用
2019/08/07 Python
通过python-pptx模块操作ppt文件的方法
2020/12/26 Python
Space NK英国站:英国热门美妆网站
2017/12/11 全球购物
Jacadi Paris英国官网:法国童装品牌
2019/08/09 全球购物
欧舒丹俄罗斯官方网站:L’OCCITANE俄罗斯
2019/11/22 全球购物
如何写好建议书
2014/03/13 职场文书
机关节能减排实施方案
2014/03/17 职场文书
技术股份合作协议书
2014/10/05 职场文书
2014年小学英语教师工作总
2014/12/03 职场文书
2014小学语文教学工作总结
2014/12/17 职场文书
武夷山导游词
2015/02/03 职场文书
施工员岗位职责
2015/02/10 职场文书
初中班长竞选稿
2015/11/20 职场文书
SQL Server中使用表变量和临时表
2022/05/20 SQL Server
Python四款GUI图形界面库介绍
2022/06/05 Python