真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

使用YII2框架怎么實現(xiàn)上傳單個文件-創(chuàng)新互聯(lián)

使用YII2框架怎么實現(xiàn)上傳單個文件?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

我們提供的服務(wù)有:成都做網(wǎng)站、成都網(wǎng)站建設(shè)、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、綏江ssl等。為超過千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的綏江網(wǎng)站制作公司

數(shù)據(jù)表tb_user內(nèi)容如下:


CREATE TABLE `tb_user` (
 `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '用戶ID',
 `name` varchar(32) DEFAULT '' COMMENT '用戶名',
 `pwd` varchar(64) DEFAULT '' COMMENT '密碼',
 `head_img` varchar(256) DEFAULT '' COMMENT '圖像',
 `sex` tinyint(1) DEFAULT '0' COMMENT '性別(0:男,1:女)',
 `age` tinyint(3) DEFAULT '0' COMMENT '年齡',
 PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用戶表';

表單頁面代碼如下(至于為什么沒有用ActiveForm來創(chuàng)建,這個就不解釋了):





  
  表單提交


" method="post" enctype="multipart/form-data">
  姓名:
  密碼:
  性別:男      
  年齡:
  頭像:
     request->csrfToken; ?>">

模型類代碼如下:

 '請?zhí)顚懹脩裘?#39;],
      ['pwd', 'string', 'length' => [6, 12], 'message' => '密碼6-12位'],
      ['sex', 'in', 'range' => [0, 1], 'message' => '正確選擇性別'],
      ['age', 'integer', 'min' => 1, 'max' => 120, 'message' => '正確填寫年齡'],
      ['head_img', 'image', 'extensions' => ['png', 'jpg', 'gif'], 'maxSize' => 1024 * 1024 * 1024, 'message' => '請上傳頭像'],
    ];
  }

  //上傳頭像
  public function uploadHeadImg()
  {
    //'head_img'這個字符串必須跟你表單中file控件的name字段相同
    $head_img = UploadedFile::getInstanceByName('head_img');
    if (!empty($head_img)) {
      $filePath = self::UPLOAD_PAHT . date('Ymd') . '/';
      //判斷文件上傳路徑,如果不存在,則創(chuàng)建
      if (!file_exists($filePath)) {
        @mkdir($filePath, 0777, true);
        @chmod($filePath, 0777);
      }
      //文件名,我們通過md5文件名加上擴展名
      $fileName = md5($head_img->baseName) . '.' . $head_img->extension;
      $file = $filePath . $fileName;
      //保存文件到我們的服務(wù)器上
      $head_img->saveAs($file);
      //返回服務(wù)器上的文件地址
      return $file;
    } else {
      return false;
    }
  }
}

控制器代碼如下:

request->isPost) {
      $user = new \app\models\MyUser();

      //把POST過來的數(shù)據(jù)加載到user對象
      $data = YII::$app->request->post();
      //注意第二個參數(shù)設(shè)為'',默認YII的ActiveForm創(chuàng)建的表單元素會加上下標
      $user->load($data, '');

      if ($user->validate()) {
        $user->pwd = YII::$app->security->generatePasswordHash($user->pwd);
        $user->head_img = $user->uploadHeadImg();

        //這里保存時設(shè)為false不驗證,因為pwd加密了
        $user->save(false);
      } else {
        var_dump($user->errors);
      }
    } else {
      return $this->renderPartial('index');
    }
  }
}

這樣我們就可以通過表單上傳圖像了。

使用YII2框架怎么實現(xiàn)上傳單個文件

使用YII2框架怎么實現(xiàn)上傳單個文件

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進一步的了解或閱讀更多相關(guān)文章,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,的支持。


文章題目:使用YII2框架怎么實現(xiàn)上傳單個文件-創(chuàng)新互聯(lián)
本文來源:http://weahome.cn/article/didpes.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部