diff --git a/io.sc.platform.core.frontend/src/platform/components-ext/formater/JoinFormater.ts b/io.sc.platform.core.frontend/src/platform/components-ext/formater/JoinFormater.ts
new file mode 100644
index 00000000..ac18c409
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components-ext/formater/JoinFormater.ts
@@ -0,0 +1,25 @@
+import { Tools } from '@/platform/utils';
+
+class JoinFormater {
+ #joiner: string;
+
+ constructor(joiner: string) {
+ this.#joiner = joiner;
+ }
+
+ public formater() {
+ const joiner = this.#joiner;
+ return (arrays: string[]) => {
+ if (Tools.isUndefinedOrNull(arrays) || !Tools.isArray(arrays)) {
+ return null;
+ }
+ let result = '';
+ arrays.forEach((item) => {
+ result += item + joiner;
+ });
+ return result;
+ };
+ }
+}
+
+export { JoinFormater };
diff --git a/io.sc.platform.developer.frontend/src/views/backend/Upload.vue b/io.sc.platform.developer.frontend/src/views/backend/Upload.vue
new file mode 100644
index 00000000..3b5c6194
--- /dev/null
+++ b/io.sc.platform.developer.frontend/src/views/backend/Upload.vue
@@ -0,0 +1,53 @@
+
+
+
+