
- Yii 教程
- Yii - 首頁
- Yii - 概述
- Yii - 安裝
- Yii - 建立頁面
- Yii - 應用結構
- Yii - 入口指令碼
- Yii - 控制器
- Yii - 使用控制器
- Yii - 使用操作
- Yii - 模型
- Yii - 小部件
- Yii - 模組
- Yii - 檢視
- Yii - 佈局
- Yii - 資源
- Yii - 資源轉換
- Yii - 擴充套件
- Yii - 建立擴充套件
- Yii - HTTP 請求
- Yii - 響應
- Yii - URL 格式
- Yii - URL 路由
- Yii - URL 規則
- Yii - HTML 表單
- Yii - 驗證
- Yii - 特設驗證
- Yii - AJAX 驗證
- Yii - 會話
- Yii - 使用快閃記憶體資料
- Yii - Cookie
- Yii - 使用 Cookie
- Yii - 檔案上傳
- Yii - 格式化
- Yii - 分頁
- Yii - 排序
- Yii - 屬性
- Yii - 資料提供者
- Yii - 資料小部件
- Yii - ListView 小部件
- Yii - GridView 小部件
- Yii - 事件
- Yii - 建立事件
- Yii - 行為
- Yii - 建立行為
- Yii - 配置
- Yii - 依賴注入
- Yii - 資料庫訪問
- Yii - 資料訪問物件
- Yii - 查詢構建器
- Yii - 活動記錄
- Yii - 資料庫遷移
- Yii - 主題
- Yii - RESTful API
- Yii - RESTful API 實戰
- Yii - 欄位
- Yii - 測試
- Yii - 快取
- Yii - 片段快取
- Yii - 別名
- Yii - 日誌記錄
- Yii - 錯誤處理
- Yii - 身份驗證
- Yii - 授權
- Yii - 本地化
- Yii - Gii
- Gii – 建立模型
- Gii – 生成控制器
- Gii – 生成模組
- Yii 有用資源
- Yii - 快速指南
- Yii - 有用資源
- Yii - 討論
Yii - 檔案上傳
您可以藉助yii\web\UploadedFile、模型和yii\widgets\ActiveForm輕鬆實現檔案上傳功能。
在根資料夾中建立一個名為“uploads”的目錄。此目錄將儲存所有上傳的影像。要上傳單個檔案,您需要建立一個模型和一個用於上傳檔案例項的模型屬性。您還應該驗證檔案上傳。
步驟 1 - 在models資料夾中,建立一個名為UploadImageForm.php的檔案,內容如下。
<?php namespace app\models; use yii\base\Model; class UploadImageForm extends Model { public $image; public function rules() { return [ [['image'], 'file', 'skipOnEmpty' => false, 'extensions' => 'jpg, png'], ]; } public function upload() { if ($this->validate()) { $this->image->saveAs('../uploads/' . $this->image->baseName . '.' . $this->image->extension); return true; } else { return false; } } } ?>
image屬性用於儲存檔案例項。file驗證規則確保檔案具有png或jpg副檔名。upload函式驗證檔案並將其儲存在伺服器上。
步驟 2 - 現在,將actionUploadImage函式新增到SiteController。
public function actionUploadImage() { $model = new UploadImageForm(); if (Yii::$app->request->isPost) { $model->image = UploadedFile::getInstance($model, 'image'); if ($model->upload()) { // file is uploaded successfully echo "File successfully uploaded"; return; } } return $this->render('upload', ['model' => $model]); }
步驟 3 - 提交表單時,我們呼叫yii\web\UploadedFile::getInstance()函式將上傳的檔案表示為UploadedFile例項。然後,我們驗證檔案並將其儲存在伺服器上。
步驟 4 - 接下來,在views/site目錄中建立一個upload.php檢視檔案。
<?php use yii\widgets\ActiveForm; ?> <?php $form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data']])?> <?= $form->field($model, 'image')->fileInput() ?> <button>Submit</button> <?php ActiveForm::end() ?>
上傳檔案時,請記住新增enctype選項。fileInput()方法呈現以下html程式碼:
<input type = "file">
以上html程式碼允許使用者選擇和上傳檔案。
步驟 5 - 現在,如果您訪問https://:8080/index.php?r=site/upload-image,您將看到以下內容。

步驟 6 - 選擇要上傳的影像並單擊“提交”按鈕。該檔案將儲存在伺服器上的“uploads”資料夾中。

廣告