เทคนิคการ download ไฟล์ เมื่อดึงข้อมูลจาก backend มาเป็น base64
javascriptfrontenddownload
28 พ.ย. 68 , 02:41
เหตุการณ์คือ ขอข้อมูลไปที่ server กล้องวงจรปิด แล้วดันตอบกลับมาเป็น ไฟล์ mp4 แบบ base64

สมมุติว่า ข้อมูลออกมาจาก backend แล้ว ก็แล้วกัน แถมตัวอย่าง ก็เอามาจากของจริงเลย

function(data) {
  const dataUrl = `data:video/mp4;base64,${data.body}`
  
  const fetchResponse = await fetch(dataUrl)
  const blob = await fetchResponse.blob()
  
  const blobUrl = window.URL.createObjectURL(blob)
  const link = document.createElement('a')
  link.href = blobUrl
  link.download = d.name || `video_${data.name}.mp4`
  
  document.body.appendChild(link)
  link.click()
  document.body.removeChild(link)
  window.URL.revokeObjectURL(blobUrl)
}