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 已经成熟
Dec 04 PHP
php Smarty date_format [格式化时间日期]
Mar 15 PHP
php中global和$GLOBALS[]的分析之一
Feb 02 PHP
file_get_contents获取不到网页内容的解决方法
Mar 07 PHP
利用php+mcDropdown实现文件路径可在下拉框选择
Aug 07 PHP
PHP模拟asp.net的StringBuilder类实现方法
Aug 08 PHP
php实现在新浪云中使用imagick生成缩略图并上传的方法
Sep 26 PHP
php+mysql实现简单登录注册修改密码网页
Nov 30 PHP
Laravel中前端js上传图片到七牛云的示例代码
Sep 04 PHP
Ajax中的JSON格式与php传输过程全面解析
Nov 14 PHP
详解PHP中curl_multi并发的实现
Jun 08 PHP
PHP Ajax跨域问题解决方案代码实例
Aug 01 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制作中间带自己定义图片二维码的方法
2014/01/27 PHP
ThinkPHP行为扩展Behavior应用实例详解
2014/07/22 PHP
php的GD库imagettftext函数解决中文乱码问题
2015/01/24 PHP
通过修改配置真正解决php文件上传大小限制问题(nginx+php)
2015/09/23 PHP
怎么用javascript进行拖拽
2006/07/20 Javascript
jquery 入门教程 [翻译] 推荐
2009/08/17 Javascript
完美解决AJAX跨域问题
2013/11/01 Javascript
JavaScript中数据结构与算法(三):链表
2015/06/19 Javascript
Javascript中级语法快速入手
2016/07/30 Javascript
详解Node.js中的事件机制
2016/09/22 Javascript
vue.js中$watch的用法示例
2016/10/04 Javascript
BootStrapValidator初使用教程详解
2017/02/10 Javascript
页面间固定参数,通过cookie传值的实现方法
2017/05/31 Javascript
使用pkg打包Node.js应用的方法步骤
2018/10/19 Javascript
Webstorm2016使用技巧(SVN插件使用)
2018/10/29 Javascript
vue 更改连接后台的api示例
2019/11/11 Javascript
Python中random模块用法实例分析
2015/05/19 Python
使用Python实现博客上进行自动翻页
2017/08/23 Python
Python实现将doc转化pdf格式文档的方法
2018/01/19 Python
Python实现的用户登录系统功能示例
2018/02/05 Python
30秒轻松实现TensorFlow物体检测
2018/03/14 Python
Python二进制串转换为通用字符串的方法
2018/07/23 Python
Python对HTML转义字符进行反转义的实现方法
2019/04/28 Python
如何通过python的fabric包完成代码上传部署
2019/07/29 Python
Python 仅获取响应头, 不获取实体的实例
2019/08/21 Python
django 中使用DateTime常用的时间查询方式
2019/12/03 Python
python实现将range()函数生成的数字存储在一个列表中
2020/04/02 Python
Python Process创建进程的2种方法详解
2021/01/25 Python
加拿大知名的国际儿童品牌:Hatley
2016/11/09 全球购物
乡村文明行动实施方案
2014/03/29 职场文书
社团活动总结怎么写
2014/06/30 职场文书
人事经理岗位职责范本
2014/08/04 职场文书
学院党的群众路线教育实践活动第一阶段情况汇报
2014/10/25 职场文书
2014员工聘用协议书(最新版)
2014/11/24 职场文书
会计稽核岗位职责
2015/04/13 职场文书
Java 获取Word中所有的插入和删除修订的方法
2022/04/06 Java/Android