AH admin . 03 May 2024

Cockpit CMS မှာ ပုံတွေ (assets) ဘယ်လိုတင်မလဲ

17 minutes read

ဖြစ်နိုင်ချေကတော့ အဲဒီ asset upload ကို Cockpit Pro ထဲကိုထည့်လိုက်တာ (သို့) security issue ကြောင့်ပယ်ထားလိုက်တယ်ထင်တာပဲ။

ပထမဆုံးပယ်ထားတဲ့ Asset API တွေပြန်ရဖို့ addons သွင်းရပါမယ်။

အောက်က code ကို `bootstrap.php` ဆိုတဲ့ file ထဲထည့်ပြီး `/addons/assets-api/` folder အောက်မှာထားလိုက်ပါ။

<?php

/**
* Assets API
*/
$this->on('restApi.config', function ($restApi) {


$restApi->addEndPoint('/assets/upload', [

'POST' => function ($params, $app) {

$meta = ['folder' => $this->param('folder', '')];

return $this->module('assets')->upload('files', $meta);
}
]);

$restApi->addEndPoint('/assets/remove', [

'POST' => function ($params, $app) {

if ($assets = $this->param('assets', false)) {
return $this->module('assets')->remove($assets);
}

return false;
}
]);

});

ဒါဆို `api/assets/upload` နဲ့ `api/assets/remove` APIs တွေပြန်ရပါပြီ။

အောက်က JS methods တွေနဲ့ file တင်တာ ဖျက်တာလုပ်နိုင်ပါပြီ။

- - -

Asset upload တင်ဖို့ JS

const formdata = new FormData();
formdata.append("files[]", fileInput.files[0]);

const requestOptions = {
method: "POST",
headers: {
"api-key": "USR-54211e192c25c90127492349397d070307410d3c"
},
body: formdata,
redirect: "follow"
};

fetch("/api/assets/upload", requestOptions)
.then((response) => response.text())
.then((result) => console.log(result))
.catch((error) => console.error(error));

- - -

Asset ဖျက်ဖို့ JS

const raw = JSON.stringify({
"assets": [
"6d2e92d86232657afe000323",
"759cad9b663536d22f0002f9"
]
});

const requestOptions = {
method: "POST",
headers: {
"api-key": "USR-54211e192c25c90127492349397d070307410d3c",
"Content-Type": "application/json"
},
body: raw,
redirect: "follow"
};

fetch("/api/assets/remove", requestOptions)
.then((response) => response.text())
.then((result) => console.log(result))
.catch((error) => console.error(error));

ဒီ asset ဖျက်ဖို့ js မှာ assets တွေကို array နဲ့ ပစ်ပြထားပါတယ်။ ဒါက asset ၂ ခုကိုတစ်ခါတည်းဖျက်လို့ရတဲ့သဘောပါ။

ဝင်ရောက်ဖတ်ရှုပေးတဲ့အတွက်ကျေးဇူးပါ။

Hello!


လာရောက်လည်ပတ်တဲ့အတွက် ကျေးဇူးပါ။
ကျနော်တို့ dev team ကလူတွေရဲ့ အတွေ့အကြုံတွေထဲက ကောင်းရာ ဆိုးရာများကို
ရေးသားထားသော articles များသာဖြစ်ပါတယ်။ ✌🏻
___

August Host သင်တန်းကိစ္စများစုံစမ်းလိုပါက
http://augusthost.com/register
မှာ form ဖြည့်သွင်းထားလို့ရပါတယ်။