日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

yii2.0上传图片

發布時間:2023/10/11 综合教程 103 老码农
生活随笔 收集整理的這篇文章主要介紹了 yii2.0上传图片 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

model:

 1 use Yii;
2 public $imageUpload;
3 public function rules()
4 {
5 return [
6     [['imageUpload'], 'image', 'extensions' => 'png, jpg, jpeg', 'minWidth' => 200, 'maxWidth' => 1000, 'minHeight' => 200, 'maxHeight' => 1000, 'maxSize' => 1024 * 1024],
7   ];
8 }
9
10 public function attributeLabels()
11 {
12 return [
13     'imageUpload' => '頭像',
14   ];
15 }
16 /**
17 * 獲取頭像url地址
18 * @return 頭像的url地址
19 */
20 public function getPortraitUrl()
21 {
22 return self::getAvatarUrlById($this->id);
23 }
24
25 /**
26 * 獲取頭像存放路徑
27 * @return 頭像的存放路徑
28 */
29 public static function getAvatarPathById($companyId)
30 {
31 $string = str_pad($companyId, 6, '0', STR_PAD_LEFT);
32   //頭像的存放路徑
33 $path = 'company/' . substr($string, 0, -4) . '/' . substr($string, -4, 2) . '/' . substr($string, -2, 2) . image_type_to_extension(IMAGETYPE_JPEG);;
34 return $path;
35 }
36
37 /**
38 * 通過用戶ID獲取頭像url地址
39 */
40 public static function getAvatarUrlById($companyId)
41 {
42 $path = self::getAvatarPathById($companyId);
43 $file = Yii::getAlias('@uploadPath/' . $path);
44 if (file_exists($file)) {
45 $makeTime = filemtime($file);
46 return Yii::getAlias('@uploadUrl/' . $path) . '?' . $makeTime;
47 }
48 return Yii::getAlias('@resUrl/' . self::DEFAULT_AVATAR);
49 }
控制器顯示:
 1 use Yii;
2 use app\models\Company;
3 use yii\helpers\FileHelper;
4 use yii\web\Controller;
5 use yii\web\UploadedFile;
6 //use yii\imageine'Image; //需要通過composer引入
7 public function actionProfile()
8 {
9 $id = Yii::$app->session['companyId'];//得到id
10 $model = Company::findOne($id);
11 $imageUpload = UploadedFile::getInstance($model, 'imageUpload');//返回一個上傳文件
12 if (Yii::$app->request->isPost && $model->load(Yii::$app->request->post())) {//判斷是否post提交,加載數據
13 if ($imageUpload && $model->validate(['imageUpload'])) {//數據驗證
14 $path = Company::getAvatarPathById($id);//圖片的路徑別名
15 $avatarImage = Yii::getAlias('@uploadPath/' . $path);//將路徑別名轉化為實際的路徑
16 FileHelper::createDirectory(dirname(Yii::getAlias($avatarImage)));//創建目錄
17 $imageUpload->saveAs(Yii::getAlias($avatarImage));//保存圖片
18  //   Image::thumbnail($avatarImage, 300, 300)->save($avatarImage); //將保存的圖片改成300*300像素再保存到網頁上
19 }
20 if($model->save()) {
21 Yii::$app->session['companyName'] = $model->name;
22 }
23 }
24 return$this->render('profile', ['model' => $model]);
25 }
視圖顯示:
 1 use app\models\Company;
2 <?php $form = ActiveForm::begin([ /*表單開始*/
3 'options' => ['enctype' => 'multipart/form-data'] //文件上傳必須加
4 ]); ?>
5 <?= $form->field($model, 'imageUpload')->fileInput(['maxlength' => true])->hint('建議上傳尺寸:100*100--300*300') ?>
6 <?= $form->field($model, 'imageUpload', ['inputTemplate'=>'<img src="'.\app\models\Company::getAvatarUrlById($model->id).'" width="100px" height="100px" />'])->staticControl() ?>
7 <div class="form-group">
8 <div class="col-sm-offset-2 col-sm-6">
9 <?= Html::submitButton('修改', ['class' => 'btn btn-green btn-sm']) ?> <!-- 顯示提交按鈕 -->
10 </div>
11 </div>
12 <?php ActiveForm::end(); ?> <!-- 表單結束 -->

結果顯示:
網頁顯示

本地顯示 (當前ID.jpeg)

總結

以上是生活随笔為你收集整理的yii2.0上传图片的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。