yii2如何上传图片

  介绍

小编给大家分享一下yii2如何上传图片,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!

第一步:搭建上传类基础工作,具体请看:http://www.yiichina.com/tutorial/328

第二步:建站一个产品表,字段id、名称、picurl。

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

第四步:

main.css 放在前端\ web \ css   .onedialog{:绝对;,左:,300 px;,:, 500 px;, z - index:, 10;,宽度:,700 px;,高度:,400 px;边界   半径:5 px;   不必:5 px  2 px  6 px  # 000;,边界:,2 px  solid  # 666}   .oneiframe{,宽度:100%;,高度:,100%,}

主要。js放在前端\ web \资产

$(函数(){   $ (& # 39;# product-picurl& # 39;) .click(函数(){   $ (& # 39;# oneupload& # 39;) .remove ();   美元(& # 39;& lt; div> & # 39;) .appendTo($(& # 39;身体# 39;)).attr ({“class":“onedialog", & # 39; id # 39;:“oneupload"});   美元(& # 39;& lt; iframe> & # 39;) .appendTo ($ (& # 39; # oneupload& # 39;)) .attr ({“src":“? r=upload",“class":“oneiframe"})   });   ,,,var  v=$ (& # 39; # product-picurl& # 39;) .val ();   如果(v) {   美元(& # 39;& lt; img> & # 39;) .attr ({“src": v,“style":“高度:50 px"}) .insertAfter ($ (& # 39; # product-picurl& # 39;));   }   });

然后在前端\ \ AppAsset资产。php中注册这两个文件

class  AppAsset  extends  AssetBundle   {   ,,,public  basePath 美元;=,& # 39;@webroot& # 39;;   ,,,public  baseUrl 美元;=,& # 39;@web& # 39;;   ,,,public  css 美元;=,(   ,,,,,,,& # 39;css/site.css& # 39;   ,,,,,,,& # 39;css/main.css& # 39;   ,,,);   ,,,public  js 美元;=,(   ,,,,,,,& # 39;资产/main.js& # 39;   ,,,);   ,,,public  depends 美元;=,(   ,,,,,,,& # 39;yii \ web \ YiiAsset& # 39;   ,,,,,,,& # 39;yii \引导\ BootstrapAsset& # 39;   ,,,);   }

<强> UploadController。php

& lt; php ?   namespace 前端\控制器;   use , Yii;   use , yii \ web \控制器;   use 应用\ \ UploadForm模型;   use  yii \ web \ UploadedFile;   class  UploadController  extends 控制器   {   ,,,public  function  actionIndex ()   ,,,{   ,,,,,,,model 美元;=,new  UploadForm ();   ,,,,,,,if  (Yii:应用程序→美元请求→isPost), {   ,,,,,,,,,,,美元模型→file =, UploadedFile: getInstance(模型中,美元,& # 39;文件# 39;);   ,,,,,,,,,,,if (模型→美元file ,,,美元模型→validate ()), {   ,,,,,,,,,,,,,,,//美元模型→文件→saveAs(& # 39;上传/& # 39;,只美元模型→文件→baseName 只& # 39;强生# 39;,模型→美元。   ,,,,,,,,,,,,,,,文件→扩展),,   ,,,,,,,,,,,,,,,$ fileName=& # 39;上传/& # 39;,只日期(“YmdHis"),只& # 39;强生# 39;,只美元模型→文件→扩展;   ,,,,,,,,,,,,,,,美元模型→文件→saveAs ($ fileName);   ,,,,,,,,,,,}   ,,,,,,,,,,,echo “& lt; script  src=https://www.yisu.com/zixun/资产/upload.js '> ;”;   回声“<脚本>”;   回声“var oneinput=parent.document.getElementById (product-picurl);”;   回声“parent.document.getElementById (product-picurl) value='”。美元文件名。”;“;   回声“var oneupload=parent.document.getElementById (oneupload);”;   回声“var img=document.createElement (img);”;   回声”img。setAttribute(“风格”,“高度:50 px”);”;   回声”img。src=" $ fileName。“;”;   回声“insertAfter (img, oneinput);”;   回声”oneupload.parentNode.removeChild (oneupload)”;   回声“> 渲染(“上传”,[“模型”=> $模型]);   }   }   ?>

<强> UploadForm。php

& lt; php ?   namespace  app \模型;   use  yii \基地\模型;   use  yii \ web \ UploadedFile;/* *   ,* UploadForm  is 从而model  behind 从而upload 形式。   ,*/class  UploadForm  extends 模型   {   ,,,/* *   ,,,,*,@var  UploadedFile  file 属性   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

yii2如何上传图片