yii2.0里自己写的源码上传图片
在做项目过程中,用了源码表单上传,
<form action="?r=pre/create" method="post" enctype="multipart/form-data">
<input type="file" name="company_logo" class="valid">
</form>
但是上传不成功,而是缺少该配置,vendor\yiisoft\yii2\web\UploadFile.php
再次上传发现能上传了。具体代码如下
写了单独的图片上传model:(UploadForm.php)
1 <?php 2 namespace app\models; 3 use yii\base\Model; 4 use yii\web\UploadedFile; 5 /** 6 * UploadForm is the model behind the upload form. 7 */ 8 class UploadForm extends Model 9 { 10 /** 11 * @var UploadedFile file attribute 12 */ 13 public $company_logo; 14 /** 15 * @return array the validation rules. 16 */ 17 public function rules() 18 { 19 return [ 20 [['company_logo'], 'file'], 21 ]; 22 } 23 }
在控制器写了:(PreController.php)
举例其中的添加方法
1 //编辑简历方法 2 public function actionCreate() 3 { 4 $model = new YiiCompanyInfo(); 5 $upload_model = new UploadForm(); 6 if (Yii::$app->request->isPost) { 7 //获取cookie登录信息 8 $cookies = Yii::$app->request->cookies; 9 $user=unserialize($cookies->getValue('user')); 10 $post=\Yii::$app->request->post(); 11 //上传过程 12 $upload_model->company_logo = \yii\web\UploadedFile::getInstance('company_logo'); 13 14 if ($upload_model->company_logo && $upload_model->validate()) { 15 $filename='logoimage/' . $upload_model->company_logo->baseName . '.' . $upload_model->company_logo->extension; 16 17 $upload_model->company_logo->saveAs($filename); 18 $post['company_logo']='http://localhost/yii3/JoinUs/project/frontend/web/'.$filename; 19 } 20 //print_r($post); die; 21 $a= yii::$app->db->createCommand()->insert('yii_company_info', [ 22 'company_id' => $user['company_id'], 23 'company_name' => $post['company_name'], 24 'company_desc' => $post['company_desc'], 25 'company_address' => $post['company_address'], 26 'company_phone' => $post['company_phone'], 27 'company_index' => $post['company_index'], 28 'company_type' => $post['company_type'], 29 'company_logo' => $post['company_logo'], 30 'company_scale' => $post['company_scale'], 31 'company_radio' => $post['company_radio'], 32 ])->execute(); 33 if ($a) { 34 return $this->render('success.php'); 35 } 36 37 }else{ 38 return $this->renderPartial('index01.php'); 39 } 40 }
model层就不写了,记得在web目录下建好存储图片目录。
注:本文由王智磊(王大宝儿)整理编写,也参考借鉴了很多大神的笔记,分享代码,分享成功,欢迎各位交流和转载,转载请注明出处(博客园:王大宝儿)http://www.cnblogs.com/wangzhilei/