useDownloadFile.ts 702 B

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