useDownloadFile.ts 627 B

12345678910111213141516171819
  1. import FileSaver from 'file-saver'
  2. import { useAp2iRequestService } from '~/composables/data/useAp2iRequestService'
  3. import type File from '~/models/Core/File'
  4. export const useDownloadFile = async (file: File) => {
  5. const { apiRequestService } = useAp2iRequestService()
  6. const downloadUrl = `api/file/download/${file.id}`
  7. const response = (await apiRequestService.get(downloadUrl)) as unknown as Blob
  8. if (!response || response.size === 0) {
  9. console.error('Error: file ' + file.id + ' not found')
  10. }
  11. const blob = new Blob([response], { type: response.type })
  12. FileSaver.saveAs(blob, file.name ?? 'unknown')
  13. }