mirror of
https://github.com/langgenius/dify.git
synced 2026-05-04 09:28:04 +08:00
Merge remote-tracking branch 'origin/main' into refactor/local-storage
# Conflicts: # web/eslint-suppressions.json
This commit is contained in:
34
web/utils/download.ts
Normal file
34
web/utils/download.ts
Normal file
@ -0,0 +1,34 @@
|
||||
export type DownloadUrlOptions = {
|
||||
url: string
|
||||
fileName?: string
|
||||
rel?: string
|
||||
target?: string
|
||||
}
|
||||
|
||||
const triggerDownload = ({ url, fileName, rel, target }: DownloadUrlOptions) => {
|
||||
if (!url)
|
||||
return
|
||||
|
||||
const anchor = document.createElement('a')
|
||||
anchor.href = url
|
||||
if (fileName)
|
||||
anchor.download = fileName
|
||||
if (rel)
|
||||
anchor.rel = rel
|
||||
if (target)
|
||||
anchor.target = target
|
||||
anchor.style.display = 'none'
|
||||
document.body.appendChild(anchor)
|
||||
anchor.click()
|
||||
anchor.remove()
|
||||
}
|
||||
|
||||
export const downloadUrl = ({ url, fileName, rel = 'noopener noreferrer', target }: DownloadUrlOptions) => {
|
||||
triggerDownload({ url, fileName, rel, target })
|
||||
}
|
||||
|
||||
export const downloadBlob = ({ data, fileName }: { data: Blob, fileName: string }) => {
|
||||
const url = window.URL.createObjectURL(data)
|
||||
triggerDownload({ url, fileName, rel: 'noopener noreferrer' })
|
||||
window.URL.revokeObjectURL(url)
|
||||
}
|
||||
Reference in New Issue
Block a user