介绍
小编给大家分享一下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)”; 回声“> 脚本”; } 返回$ this ->渲染(“上传”,[“模型”=> $模型]); } } ?>
<强> 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 nullyii2如何上传图片