首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

Yii2 整合 mdmsoft/yii2-upload-file 實現 AJAX 圖片上傳

     編輯:PHP 綜合知識

安裝擴充套件

composer require mdmsoft/yii2-upload-file

控制器實作

public function actionCreate() {
    $model = new DynamicModel(['nama', 'file_id']);
    
    // 掛載上傳行為
    $model->attachBehavior('upload', [
        'class' => 'mdm\upload\UploadBehavior',
        'attribute' => 'file',
        'savedAttribute' => 'file_id'
    ]);

    // 驗證規則
    $model->addRule('nama', 'string')
          ->addRule('file', 'file', ['extensions' => 'jpg, png']);

    if ($model->load(Yii::$app->request->post()) && $model->validate()) {
        if ($model->saveUploadedFile() !== false) {
            Yii::$app->session->setFlash('success', '上傳成功');
        }
    }
    return $this->render('upload', ['model' => $model]);
}

視圖檔案

 ['enctype' => 'multipart/form-data']]); ?>
    field($model, 'nama') ?>
    field($model, 'file')->fileInput() ?>
    
    file_id): ?>
        
$model->file_id]) ?>
'btn btn-primary']) ?>

關鍵點說明

  • UploadBehavior 自動處理檔案儲存、重命名、關聯模型屬性
  • savedAttribute 指定儲存檔案 ID 的模型屬性
  • 搭配 yii\web\UploadedFile 實現安全驗證
  • 前端可整合 Dropzone.js / WebUploader 實現拖拽、進度條、多檔上傳
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved