Laravel-admin 外掛中檔案上傳改為非同步上傳並設定_token 和_method

vinhson發表於2018-10-11

Laravel laravel-admin 是一個很不錯的後臺管理系統,在此基礎上,用好了可以大大減少開發成本,真正做到敏捷開發,但官方文件難免還有一些不足,例如外掛中檔案上傳改為非同步上傳並設定_token和_method的方法並沒有介紹.

官方文件只有一些基礎的使用方法:

// 檔案上傳
$form->file($column[, $label]);

// 修改檔案上傳路徑和檔名
$form->file($column[, $label])->move($dir, $name);

// 並設定上傳檔案型別
$form->file($column[, $label])->rules('mimes:doc,docx,xlsx');

// 新增檔案刪除按鈕
$form->file($column[, $label])->removable();

// 多圖/檔案上傳
$form->multipleImage($column[, $label]);

// 新增刪除按鈕
$form->multipleImage($column[, $label])->removable();

// 多檔案
$form->multipleFile($column[, $label]);

// 新增刪除按鈕
$form->multipleFile($column[, $label])->removable();

其實閱讀外掛原始碼可以發現有一些函式雖然沒寫在官方文件中,但功能還是在的,如options方法,可以直接新增fileinput配置,那這樣就可以直接設定為非同步上傳,並且設定_token和_method值了,如下程式碼,還有addElementClass方法,可以加指定樣式

return Admin::form(Android::class, function (Form $form) {

    // 非同步上傳檔案,限上傳apk格式
    $form->file('file_upload', '上傳安裝包')->removable()->addElementClass('apk_upload')->options([
        'showPreview' => false,
        'allowedFileExtensions'=>['apk'],
        'showUpload'=>true,
        'uploadAsync' =>true,
        'uploadUrl' => '/admin/common/apk_upload',
        'uploadExtraData' => [
            '_token'    => csrf_token(),
            '_method'   => 'POST',
        ],
    ])->setWidth(5, 3);
});
本作品採用《CC 協議》,轉載必須註明作者和本文連結
不要輕易放棄。學習成長的路上,我們長路漫漫,只因學無止境 Don't give up easily. On the way of learning and growing up, we have a long way to go, just because there is no end to learning.

相關文章