Browse Source

fix: file broken when uploading file using the Google Drive block (#1394)

Ahmad Kholid 1 year ago
parent
commit
5f9144731f

+ 1 - 1
src/components/newtab/workflow/edit/EditJavascriptCode.vue

@@ -61,7 +61,7 @@
         Run before page loaded
       </ui-checkbox>
     </template>
-    <ui-modal v-model="state.showCodeModal" content-class="w-11\/12">
+    <ui-modal v-model="state.showCodeModal" content-class="max-w-4xl">
       <template #header>
         <ui-tabs v-model="state.activeTab" class="border-none">
           <ui-tab value="code">

+ 11 - 4
src/workflowEngine/blocksHandler/handlerGoogleDrive.js

@@ -58,13 +58,20 @@ export async function googleDrive({ id, data }, { refData }) {
     );
     const locationUri = sessionResponse.headers.get('location');
 
-    const formData = new FormData();
-
-    formData.append('file', blob);
+    const buffer = await new Promise((resolve) => {
+      const reader = new FileReader();
+      reader.onload = () => {
+        resolve(reader.result);
+      };
+      reader.readAsArrayBuffer(blob);
+    });
 
     const result = await fetchGapi(locationUri, {
       method: 'PUT',
-      body: formData,
+      headers: {
+        'Content-Length': blob.size,
+      },
+      body: buffer,
     });
 
     return result;