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/

posted @ 2017-03-24 20:07  王大宝儿  阅读(734)  评论(3编辑  收藏  举报