Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
S
saas-bi
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
EzijingWeb
saas-bi
Commits
237691e7
提交
237691e7
authored
6月 23, 2025
作者:
王鹏飞
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
修改文件上传到本地服务器
上级
be2c40a5
显示空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
39 行增加
和
27 行删除
+39
-27
base.ts
src/api/base.ts
+29
-0
upload.ts
src/utils/upload.ts
+10
-27
没有找到文件。
src/api/base.ts
浏览文件 @
237691e7
...
...
@@ -53,3 +53,32 @@ export function getMyField() {
export
function
getProcessProgress
(
params
:
{
function_name
:
string
})
{
return
httpRequest
.
get
(
'/api/resource/bi/v1/processing/processing/progress'
,
{
params
})
}
// 获取分片大小和唯一文件名
export
function
getLocalFileChunk
(
params
:
{
file_size
:
number
;
file_name
:
string
})
{
return
httpRequest
.
get
(
'/api/lab/v1/common/file/chunk'
,
{
params
})
}
// 上传每个分片前请求接口来获取当前文件是否超时,之前的分片是否被清理,如果被请求则拒绝处理。返回客户端错误码,让客户端户端不再续传剩余分片
// 1文件被清理 0文件未被清理
export
function
checkLocalFile
(
params
:
{
file_name
:
string
})
{
return
httpRequest
.
get
(
'/api/lab/v1/common/file/check'
,
{
params
})
}
// 上传文件
export
function
uploadLocalFile
(
data
:
{
file
:
File
|
Blob
file_name
:
string
is_continuingly
?:
number
now_package_num
:
number
total_package_num
:
number
},
options
=
{}
)
{
return
httpRequest
.
post
(
'/api/lab/v1/common/file/upload'
,
data
,
Object
.
assign
({
withCredentials
:
false
,
headers
:
{
'Content-Type'
:
'multipart/form-data'
}
},
options
)
)
}
src/utils/upload.ts
浏览文件 @
237691e7
import
axios
from
'axios'
import
md5
from
'blueimp-md5'
import
{
getSignature
,
uploadFile
}
from
'@/api/base'
import
{
getLocalFileChunk
,
uploadLocalFile
}
from
'@/api/base'
export
async
function
upload
(
blob
:
Blob
|
File
)
{
let
fileType
=
'png'
if
(
blob
instanceof
File
&&
blob
.
name
)
{
const
matches
=
blob
.
name
.
match
(
/
\.(\w
+
)
$/
)
if
(
matches
)
{
fileType
=
matches
[
1
]
}
}
else
if
(
blob
.
type
)
{
const
mimeType
=
blob
.
type
.
split
(
'/'
).
pop
()
if
(
mimeType
)
{
fileType
=
mimeType
}
}
const
key
=
'upload/saas-bi/'
+
md5
(
new
Date
().
getTime
()
+
Math
.
random
().
toString
(
36
).
slice
(
-
8
))
+
'.'
+
fileType
const
response
:
any
=
await
getSignature
()
export
async
function
upload
(
file
:
Blob
)
{
const
response
=
await
getLocalFileChunk
({
file_name
:
'abc'
,
file_size
:
file
.
size
})
const
params
=
{
key
,
host
:
response
.
host
,
OSSAccessKeyId
:
response
.
accessid
,
policy
:
response
.
policy
,
signature
:
response
.
signature
,
success_action_status
:
'200'
,
file
:
blob
,
url
:
`
${
response
.
host
}
/
${
key
}
`
,
file
,
file_name
:
response
.
data
.
detail
.
file_name
,
now_package_num
:
1
,
total_package_num
:
1
}
await
uploadFile
(
params
)
return
params
.
url
const
res
=
await
uploadLocalFile
(
params
)
return
res
.
data
.
detail
.
uri
}
export
async
function
uploadFileByUrl
(
url
:
string
)
{
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论