读url型.dat文件

请求文件内容获取blob数据

import axios from 'axios'
import { base64ToHex } from '@utils/util'

export const fileService = {
  // 读.dat文件
  // 这里已经对返回的blob文件数据进行了处理,然会的结果直接就是16进制字符串了,可以直接解析
  readDatFile: (url: string) => {
    return new Promise((resolve, reject) => {
      // axios.get(url.replace('https://elasticbeanstalk-us-west-2-697648770036.s3.us-west-2.amazonaws.com/viatomstoragetest/data', '/file'), {
      axios.get(url, {
        responseType: 'blob'
      }).then((res: any) => {
        const reader = new FileReader()
        reader.readAsDataURL(res.data)
        reader.onload = (e: any) => {
          resolve(base64ToHex(e.target.result.split(',')[1]))
        }
      })
    }) 
  },
}
  • 所以这里主要是需要把base64内容转换成需要的类型,这里我们的文件协议按16进制解析,就转成了16进制
// base64转16进制
export function base64ToHex(base64: string) {
  const raw = atob(base64)
  let result = ''
  for (let i = 0; i < raw.length; i++) {
    const hex = raw.charCodeAt(i).toString(16)
    result += (hex.length === 2 ? hex : '0' + hex)
  }
  return result
}

posted @ 2024-07-11 11:23  Mizuki-Vone  阅读(3)  评论(0编辑  收藏  举报