This is an automated email from the ASF dual-hosted git repository.
hefengen pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shenyu-dashboard.git
The following commit(s) were added to refs/heads/master by this push:
new b3f610db fix upload bug (#378)
b3f610db is described below
commit b3f610dbb8a06d0d9c50a251196850c9b0fe2007
Author: Misaya295 <[email protected]>
AuthorDate: Fri Dec 8 09:38:50 2023 +0800
fix upload bug (#378)
Co-authored-by: chenwk <[email protected]>
---
src/services/api.js | 44 +++++++++++++++++++++++++++++++++++---------
1 file changed, 35 insertions(+), 9 deletions(-)
diff --git a/src/services/api.js b/src/services/api.js
index 983b6e8d..50b12205 100644
--- a/src/services/api.js
+++ b/src/services/api.js
@@ -172,19 +172,41 @@ export async function findUser(params) {
/* addPlugin */
export async function addPlugin(params) {
- const formData = new FormData;
- formData.append("name",params.name);
- if(params.config) formData.append("config",params.config);
- formData.append("sort",params.sort);
- formData.append("role",params.role);
- formData.append("enabled",params.enabled);
- if(params.file) formData.append("file",params.file);
+ const formData = new FormData();
+ formData.append("name", params.name);
+ if (params.config) formData.append("config", params.config);
+ formData.append("sort", params.sort);
+ formData.append("role", params.role);
+ formData.append("enabled", params.enabled);
+ if (params.file && typeof params.file === 'object') {
+ const base64Data = await readFileAsBase64(params.file);
+ formData.append("file", base64Data);
+ }
+ if(params.file) formData.append("file", params.file);
+
return request(`${baseUrl}/plugin`, {
method: `POST`,
body: formData,
});
}
+function readFileAsBase64(file) {
+ return new Promise((resolve, reject) => {
+ const reader = new FileReader();
+
+ reader.onload = (event) => {
+ const base64String = event.target.result.split(",")[1];
+ resolve(base64String);
+ };
+
+ reader.onerror = (error) => {
+ reject(error);
+ };
+
+ reader.readAsDataURL(file);
+ });
+}
+
/* deletePlugin */
export async function deletePlugin(params) {
return request(`${baseUrl}/plugin/batch`, {
@@ -202,7 +224,11 @@ export async function updatePlugin(params) {
formData.append("sort",params.sort);
formData.append("role",params.role);
formData.append("enabled",params.enabled);
- if(params.file) formData.append("file",params.file);
+ if (params.file && typeof params.file === 'object') {
+ const base64Data = await readFileAsBase64(params.file);
+ formData.append("file", base64Data);
+ }
+ if(params.file) formData.append("file", params.file);
return request(`${baseUrl}/plugin/${params.id}`, {
method: `PUT`,
@@ -1047,4 +1073,4 @@ export function fetchAlertReport(params) {
...params
}
});
-}
\ No newline at end of file
+}