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和ACCESS写聊天室(三)
Oct 09 PHP
php 日期时间处理函数小结
Dec 18 PHP
php getimagesize 上传图片的长度和宽度检测代码
May 15 PHP
如何使用PHP计算上一个月的今天
May 23 PHP
PHP cdata 处理(详细介绍)
Jul 05 PHP
PHP生成Gif图片验证码
Oct 27 PHP
php最简单的删除目录与文件实现方法
Nov 28 PHP
Codeigniter框架实现获取分页数据和总条数的方法
Dec 05 PHP
四个常见html网页乱码问题及解决办法
Sep 08 PHP
thinkPHP实现将excel导入到数据库中的方法
Apr 22 PHP
PHP实现留言板功能的详细代码
Mar 25 PHP
PHP获取对象属性的三种方法实例分析
Jan 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中的foreach函数
2013/08/31 PHP
PHP实现自动发送邮件功能代码(qq 邮箱)
2017/08/18 PHP
PHP安装BCMath扩展的方法
2019/02/13 PHP
基于jquery的表头固定的若干方法
2011/01/27 Javascript
详谈 Jquery Ajax异步处理Json数据.
2011/09/09 Javascript
JavaScript实现网页图片等比例缩放实现代码及调用方式
2013/02/25 Javascript
js跑马灯代码(自写)
2013/04/17 Javascript
了不起的node.js读书笔记之node的学习总结
2014/12/22 Javascript
判断浏览器的内核及版本号方法汇总
2015/01/05 Javascript
JavaScript实现常用二级省市级联下拉列表的方法
2015/03/25 Javascript
jQuery遮罩层效果实例分析
2016/01/14 Javascript
jQuery弹层插件jquery.fancybox.js用法实例
2016/01/22 Javascript
js实现右键菜单功能
2016/11/28 Javascript
详解用Node.js实现Restful风格webservice
2017/09/29 Javascript
Angular搜索 过滤 批量删除 添加 表单验证功能集锦(实例代码)
2017/10/25 Javascript
JavaScript定义及输出螺旋矩阵的方法详解
2017/12/01 Javascript
JS实现延迟隐藏功能的方法(类似QQ头像鼠标放上展示信息)
2017/12/28 Javascript
Java设计中的Builder模式的介绍
2018/03/22 Javascript
微信小程序sessionid不一致问题解决
2019/08/30 Javascript
深入浅析golang zap 日志库使用(含文件切割、分级别存储和全局使用等)
2020/02/19 Javascript
微信小程序转化为uni-app项目的方法示例
2020/05/22 Javascript
微信小程序实现登录注册功能
2020/12/29 Javascript
[00:43]TI7不朽珍藏III——幽鬼不朽展示
2017/07/15 DOTA
Python Mysql自动备份脚本
2008/07/14 Python
Python中使用第三方库xlrd来读取Excel示例
2015/04/05 Python
Python 爬虫爬取指定博客的所有文章
2016/02/17 Python
人生苦短我用python python如何快速入门?
2018/03/12 Python
python实现反转部分单向链表
2018/09/27 Python
解决python运行效率不高的问题
2020/07/20 Python
总结html5自定义属性有哪些
2020/04/01 HTML / CSS
期末自我鉴定
2014/02/02 职场文书
消防安全汇报材料
2014/02/08 职场文书
第二课堂活动总结
2014/05/07 职场文书
见义勇为事迹材料
2014/12/24 职场文书
会议欢迎词
2015/01/23 职场文书
详细总结Python常见的安全问题
2021/05/21 Python