当前位置:首页 > CMS教程 > 其它CMS > 列表

yii2 上传图片的示例代码

发布:smiling 来源: PHP粉丝网  添加日期:2021-11-01 14:35:14 浏览: 评论:0 

这篇文章主要介绍了yii2 上传图片的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考,一起跟随小编过来看看吧。

第一步: 搭建上传类基础工作

第二步:建站一个product表,字段id,name,picurl.

第三步:生GII生成PRODUCT 模型,类,视图。

第四步:

main.css 放在frontend\web\css

  1. .onedialog{position:absolute; left: 300px; top: 500pxz-index10width700pxheight400px;border-radius:5px;box-shadow:5px 2px 6px #000border2px solid #666
  2. .oneiframe{ width100%height100% } 

main.js 放在 frontend\web\assets

  1. $(function(){ 
  2.  $('#product-picurl').click(function(){ 
  3.  $('#oneupload').remove(); 
  4.  $('<div>').appendTo($('body')).attr({"class":"onedialog",'id':"oneupload"}); 
  5.  $('<iframe>').appendTo($('#oneupload')).attr({"src":"?r=upload","class":"oneiframe"}) 
  6.  }); 
  7.   var v=$('#product-picurl').val(); 
  8.  if(v){ 
  9.  $('<img>').attr({"src":v,"style":"height:50px"}).insertAfter($('#product-picurl')); 
  10.  } 
  11. }); 

然后在frontend\assets\AppAsset.php中注册这两个文件

  1. class AppAsset extends AssetBundle 
  2.   public $basePath = '@webroot'
  3.   public $baseUrl = '@web'
  4.   public $css = [ 
  5.     'css/site.css'
  6.     'css/main.css'
  7.   ]; 
  8.   public $js = [ 
  9.     'assets/main.js' 
  10.   ]; 
  11.   public $depends = [ 
  12.     'yii\web\YiiAsset'
  13.     'yii\bootstrap\BootstrapAsset'
  14.   ]; 

UploadController.php

  1. <?PHP 
  2. namespace frontend\controllers; 
  3.  
  4. use Yii; 
  5. use yii\web\Controller; 
  6. use app\models\UploadForm; 
  7. use yii\web\UploadedFile; 
  8.  
  9. class UploadController extends Controller 
  10.   public function actionIndex() 
  11.   { 
  12.     $model = new UploadForm(); 
  13.  
  14.     if (Yii::$app->request->isPost) { 
  15.       $model->file = UploadedFile::getInstance($model'file'); 
  16.  
  17.       if ($model->file && $model->validate()) { 
  18.         //$model->file->saveAs('uploads/' . $model->file->baseName . '.' . $model->file->extension);       
  19.         $fileName='uploads/' . date("YmdHis") . '.' . $model->file->extension; 
  20.         $model->file->saveAs($fileName); 
  21.       } 
  22.       echo "<script src='assets/upload.js'></script>;"
  23.       echo "<script>"
  24.       echo "var oneinput=parent.document.getElementById('product-picurl');"
  25.       echo "parent.document.getElementById('product-picurl').value='".$fileName."';"
  26.       echo "var oneupload = parent.document.getElementById('oneupload');"
  27.       echo "var img = document.createElement('img');"
  28.       echo "img.setAttribute('style', 'height:50px');"
  29.       echo "img.src ='".$fileName."';"
  30.       echo "insertAfter(img,oneinput);"
  31.       echo "oneupload.parentNode.removeChild(oneupload)"
  32.       echo "</script>"
  33.     } 
  34.  
  35.     return $this->render('upload', ['model' => $model]); 
  36.   } 
  37. ?> 

UploadForm.php

  1. <?PHP 
  2. namespace app\models; 
  3.  
  4. use yii\base\Model; 
  5. use yii\web\UploadedFile; 
  6.  
  7. /** 
  8.  * UploadForm is the model behind the upload form. 
  9.  */ 
  10. class UploadForm extends Model 
  11.   /** 
  12.    * @var UploadedFile file attribute 
  13.    */ 
  14.   public $file
  15.  
  16.   /** 
  17.    * @return array the validation rules. 
  18.    */ 
  19.   public function rules() 
  20.   { 
  21.     return [ 
  22.       [['file'], 'file'], 
  23.     ]; 
  24.   } 
  25. ?> 

upload.php

  1. <?php 
  2. use yii\widgets\ActiveForm; 
  3. ?> 
  4.  
  5. <?php $form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data']]) ?> 
  6.  
  7. <?= $form->field($model'file')->fileInput() ?> 
  8.  
  9. <button>Submit</button> 
  10.  
  11. <?php ActiveForm::end() ?>

Tags: yii2上传图片

分享到:

相关文章