diff --git a/src/store/modules/Operations/FirmwareStore.js b/src/store/modules/Operations/FirmwareStore.js
index 8387109..0015486 100644
--- a/src/store/modules/Operations/FirmwareStore.js
+++ b/src/store/modules/Operations/FirmwareStore.js
@@ -9,6 +9,7 @@
     bmcActiveFirmwareId: null,
     hostActiveFirmwareId: null,
     applyTime: null,
+    multipartHttpPushUri: null,
     httpPushUri: null,
   },
   getters: {
@@ -41,6 +42,8 @@
     setHostFirmware: (state, firmware) => (state.hostFirmware = firmware),
     setApplyTime: (state, applyTime) => (state.applyTime = applyTime),
     setHttpPushUri: (state, httpPushUri) => (state.httpPushUri = httpPushUri),
+    setMultipartHttpPushUri: (state, multipartHttpPushUri) =>
+      (state.multipartHttpPushUri = multipartHttpPushUri),
   },
   actions: {
     async getFirmwareInformation({ dispatch }) {
@@ -110,10 +113,21 @@
           commit('setApplyTime', applyTime);
           const httpPushUri = data.HttpPushUri;
           commit('setHttpPushUri', httpPushUri);
+          const multipartHttpPushUri = data.MultipartHttpPushUri;
+          commit('setMultipartHttpPushUri', multipartHttpPushUri);
         })
         .catch((error) => console.log(error));
     },
-    async uploadFirmware({ state }, image) {
+    async uploadFirmware({ state, dispatch }, params) {
+      if (state.multipartHttpPushUri != null) {
+        return dispatch('uploadFirmwareMultipartHttpPush', params);
+      } else if (state.httpPushUri != null) {
+        return dispatch('uploadFirmwareHttpPush', params);
+      } else {
+        console.log('Do not support firmware push update');
+      }
+    },
+    async uploadFirmwareHttpPush({ state }, { image }) {
       return await api
         .post(state.httpPushUri, image, {
           headers: { 'Content-Type': 'application/octet-stream' },
@@ -125,6 +139,23 @@
           );
         });
     },
+    async uploadFirmwareMultipartHttpPush({ state }, { image, targets }) {
+      const formData = new FormData();
+      formData.append('UpdateFile', image);
+      let params = {};
+      if (targets != null && targets.length > 0) params.Targets = targets;
+      formData.append('UpdateParameters', JSON.stringify(params));
+      return await api
+        .post(state.multipartHttpPushUri, formData, {
+          headers: { 'Content-Type': 'multipart/form-data' },
+        })
+        .catch((error) => {
+          console.log(error);
+          throw new Error(
+            i18n.global.t('pageFirmware.toast.errorUpdateFirmware'),
+          );
+        });
+    },
     async switchBmcFirmwareAndReboot({ getters }) {
       const backupLocation = getters.backupBmcFirmware.location;
       const data = {
