From 2286438097522a3309786034f69e499f10d28bf5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=BA=90=E6=96=87=E9=9B=A8?= <41315874+fumiama@users.noreply.github.com> Date: Sat, 15 Apr 2023 23:50:59 +0800 Subject: [PATCH] finish getFileBlob --- .gitignore | 1 + frontend/vben/src/api/page/index.ts | 12 +++++++++++- frontend/vben/src/utils/http/axios/index.ts | 15 ++++++++------- frontend/vben/src/views/page/file/index.vue | 12 ++---------- main.go | 1 + 5 files changed, 23 insertions(+), 18 deletions(-) diff --git a/.gitignore b/.gitignore index 75af933..6d1bf3f 100644 --- a/.gitignore +++ b/.gitignore @@ -18,3 +18,4 @@ .DS_Store /data +paper-manager diff --git a/frontend/vben/src/api/page/index.ts b/frontend/vben/src/api/page/index.ts index 3f03c74..0b09ee4 100644 --- a/frontend/vben/src/api/page/index.ts +++ b/frontend/vben/src/api/page/index.ts @@ -1,4 +1,4 @@ -import { defHttp } from '/@/utils/http/axios' +import { defHttp, paperHttp } from '/@/utils/http/axios' import { getFileListModel, AnalyzeFile, FileListGroupItem } from './model/fileListModel' import { DownloadFile, FileStatus } from './model/fileModel' @@ -57,6 +57,16 @@ export const downloadFile = (id: number) => { return defHttp.get({ url: Api.DlFile, params: { id: id } }) } +/** + * @description: Download file to blob + */ +export const getFileBlob = (url: string) => { + return paperHttp.get({ + responseType: 'blob', + url: url, + }) +} + /** * @description: Get file status */ diff --git a/frontend/vben/src/utils/http/axios/index.ts b/frontend/vben/src/utils/http/axios/index.ts index 0334a6d..2b892f6 100644 --- a/frontend/vben/src/utils/http/axios/index.ts +++ b/frontend/vben/src/utils/http/axios/index.ts @@ -258,10 +258,11 @@ function createAxios(opt?: Partial) { } export const defHttp = createAxios() -// other api url -// export const otherHttp = createAxios({ -// requestOptions: { -// apiUrl: 'xxx', -// urlPrefix: 'xxx', -// }, -// }); +// download paper +export const paperHttp = createAxios({ + requestOptions: { + apiUrl: '', + urlPrefix: '', + isTransformResponse: false, + }, +}) diff --git a/frontend/vben/src/views/page/file/index.vue b/frontend/vben/src/views/page/file/index.vue index 95234ff..a005bc0 100644 --- a/frontend/vben/src/views/page/file/index.vue +++ b/frontend/vben/src/views/page/file/index.vue @@ -15,15 +15,13 @@ import { PageWrapper } from '/@/components/Page' import { useECharts } from '/@/hooks/web/useECharts' import { renderAsync } from 'docx-preview' - import { downloadFile, getFileStatus } from '/@/api/page' + import { downloadFile, getFileStatus, getFileBlob } from '/@/api/page' import { useMessage } from '/@/hooks/web/useMessage' import { useGo } from '/@/hooks/web/usePage' import { useTabs } from '/@/hooks/web/useTabs' import { PageEnum } from '/@/enums/pageEnum' import { useI18n } from '/@/hooks/web/useI18n' import { downloadByData } from '/@/utils/file/download' - import { getToken } from '/@/utils/auth' - import axios from 'axios' const { t } = useI18n() @@ -86,13 +84,7 @@ try { const ret = await downloadFile(Number(params.value.id)) if (ret && ret.url) { - const token = getToken() as string - const { data } = await axios({ - method: 'get', - responseType: 'blob', - url: ret.url, - headers: { Authorization: token }, - }) + const data = await getFileBlob(ret.url) if (data) { loadDocx(data) return diff --git a/main.go b/main.go index 0ef92a5..b2caa12 100644 --- a/main.go +++ b/main.go @@ -31,6 +31,7 @@ func main() { http.HandleFunc("/api/", backend.APIHandler) http.HandleFunc("/file/", backend.FileHandler) + http.HandleFunc("/paper/", backend.PaperHandler) http.HandleFunc("/upload", backend.UploadHandler) logrus.Infoln("[http.Serve] start at", l.Addr())