[{"data":1,"prerenderedAt":885},["ShallowReactive",2],{"content:\u002Fposts\u002F2022\u002Fblob-and-mime":3,"surround:\u002Fposts\u002F2022\u002Fblob-and-mime":874},{"id":4,"title":5,"body":6,"canonical":844,"categories":845,"date":847,"description":848,"draft":849,"extension":850,"image":851,"meta":852,"navigation":853,"path":854,"permalink":844,"readingTime":855,"recommend":844,"references":860,"seo":868,"sitemap":869,"stem":870,"tags":871,"type":844,"updated":847,"__hash__":873},"content\u002Fposts\u002F2022\u002Fblob-and-mime.md","MIME 类型和 Blob",{"type":7,"value":8,"toc":837},"minimark",[9,14,799,803,807,818,821,827,831],[10,11,13],"h2",{"id":12},"blob-文件类型","Blob 文件类型",[15,16,17,34],"table",{},[18,19,20],"thead",{},[21,22,23,28,31],"tr",{},[24,25,27],"th",{"align":26},"left","拓展名",[24,29,30],{"align":26},"文件类型",[24,32,33],{"align":26},"MIME 类型",[35,36,37,49,60,71,82,93,104,115,126,137,148,159,170,181,192,203,214,225,236,245,256,267,278,289,298,309,320,331,342,351,361,372,383,394,405,416,427,438,449,460,471,482,493,504,515,526,537,548,559,570,581,592,602,613,624,635,646,657,668,679,690,700,711,722,733,744,755,766,777,788],"tbody",{},[21,38,39,43,46],{},[40,41,42],"td",{"align":26},".aac",[40,44,45],{"align":26},"AAC 音频",[40,47,48],{"align":26},"audio\u002Faac",[21,50,51,54,57],{},[40,52,53],{"align":26},".abw",[40,55,56],{"align":26},"AbiWord 文档",[40,58,59],{"align":26},"application\u002Fx-abiword",[21,61,62,65,68],{},[40,63,64],{"align":26},".arc",[40,66,67],{"align":26},"存档文档(多个文件嵌入)",[40,69,70],{"align":26},"application\u002Fx-freearc",[21,72,73,76,79],{},[40,74,75],{"align":26},".avi",[40,77,78],{"align":26},"AVI: 音频视频交错",[40,80,81],{"align":26},"video\u002Fx-msvideo",[21,83,84,87,90],{},[40,85,86],{"align":26},".azw",[40,88,89],{"align":26},"亚马逊 Kindle 电子书格式",[40,91,92],{"align":26},"application\u002Fvnd.amazon.ebook",[21,94,95,98,101],{},[40,96,97],{"align":26},".bin",[40,99,100],{"align":26},"任何类型的二进制数据",[40,102,103],{"align":26},"application\u002Foctet-stream",[21,105,106,109,112],{},[40,107,108],{"align":26},".bmp",[40,110,111],{"align":26},"Windows OS\u002F2 位图图形",[40,113,114],{"align":26},"image\u002Fbmp",[21,116,117,120,123],{},[40,118,119],{"align":26},".bz",[40,121,122],{"align":26},"BZip 存档",[40,124,125],{"align":26},"application\u002Fx-bzip",[21,127,128,131,134],{},[40,129,130],{"align":26},".bz2",[40,132,133],{"align":26},"BZip2 存档",[40,135,136],{"align":26},"application\u002Fx-bzip2",[21,138,139,142,145],{},[40,140,141],{"align":26},".csh",[40,143,144],{"align":26},"C-Shell 脚本",[40,146,147],{"align":26},"application\u002Fx-csh",[21,149,150,153,156],{},[40,151,152],{"align":26},".css",[40,154,155],{"align":26},"CSS",[40,157,158],{"align":26},"text\u002Fcss",[21,160,161,164,167],{},[40,162,163],{"align":26},".csv",[40,165,166],{"align":26},"CSV",[40,168,169],{"align":26},"text\u002Fcsv",[21,171,172,175,178],{},[40,173,174],{"align":26},".doc",[40,176,177],{"align":26},"Microsoft Word",[40,179,180],{"align":26},"application\u002Fmsword",[21,182,183,186,189],{},[40,184,185],{"align":26},".docx",[40,187,188],{"align":26},"Microsoft Word (OpenXML)",[40,190,191],{"align":26},"application\u002Fvnd.openxmlformats-officedocument.wordprocessingml.document",[21,193,194,197,200],{},[40,195,196],{"align":26},".eot",[40,198,199],{"align":26},"MS 嵌入式 OpenType 字体",[40,201,202],{"align":26},"application\u002Fvnd.ms-fontobject",[21,204,205,208,211],{},[40,206,207],{"align":26},".epub",[40,209,210],{"align":26},"电子出版物(EPUB)",[40,212,213],{"align":26},"application\u002Fepub+zip",[21,215,216,219,222],{},[40,217,218],{"align":26},".gif",[40,220,221],{"align":26},"GIF",[40,223,224],{"align":26},"image\u002Fgif",[21,226,227,230,233],{},[40,228,229],{"align":26},".htm",[40,231,232],{"align":26},"超文本标记语言 (HTML)",[40,234,235],{"align":26},"text\u002Fhtml",[21,237,238,241,243],{},[40,239,240],{"align":26},".html",[40,242,232],{"align":26},[40,244,235],{"align":26},[21,246,247,250,253],{},[40,248,249],{"align":26},".ico",[40,251,252],{"align":26},"Icon 格式",[40,254,255],{"align":26},"image\u002Fvnd.microsoft.icon",[21,257,258,261,264],{},[40,259,260],{"align":26},".ics",[40,262,263],{"align":26},"iCalendar 格式",[40,265,266],{"align":26},"text\u002Fcalendar",[21,268,269,272,275],{},[40,270,271],{"align":26},".jar",[40,273,274],{"align":26},"Java Archive (JAR)",[40,276,277],{"align":26},"application\u002Fjava-archive",[21,279,280,283,286],{},[40,281,282],{"align":26},".jpeg",[40,284,285],{"align":26},"JPEG 图片",[40,287,288],{"align":26},"image\u002Fjpeg",[21,290,291,294,296],{},[40,292,293],{"align":26},".jpg",[40,295,285],{"align":26},[40,297,288],{"align":26},[21,299,300,303,306],{},[40,301,302],{"align":26},".js",[40,304,305],{"align":26},"JavaScript",[40,307,308],{"align":26},"text\u002Fjavascript",[21,310,311,314,317],{},[40,312,313],{"align":26},".json",[40,315,316],{"align":26},"JSON 格式",[40,318,319],{"align":26},"application\u002Fjson",[21,321,322,325,328],{},[40,323,324],{"align":26},".jsonld",[40,326,327],{"align":26},"JSON-LD 格式",[40,329,330],{"align":26},"application\u002Fld+json",[21,332,333,336,339],{},[40,334,335],{"align":26},".mid",[40,337,338],{"align":26},"乐器数字接口(MIDI)",[40,340,341],{"align":26},"audio\u002Fmidi audio\u002Fx-midi",[21,343,344,347,349],{},[40,345,346],{"align":26},".midi",[40,348,338],{"align":26},[40,350,341],{"align":26},[21,352,353,356,359],{},[40,354,355],{"align":26},".mjs",[40,357,358],{"align":26},"JavaScript 模块",[40,360,308],{"align":26},[21,362,363,366,369],{},[40,364,365],{"align":26},".mp3",[40,367,368],{"align":26},"MP3 音频",[40,370,371],{"align":26},"audio\u002Fmpeg",[21,373,374,377,380],{},[40,375,376],{"align":26},".mpeg",[40,378,379],{"align":26},"MPEG 视频",[40,381,382],{"align":26},"video\u002Fmpeg",[21,384,385,388,391],{},[40,386,387],{"align":26},".mpkg",[40,389,390],{"align":26},"苹果安装程序包",[40,392,393],{"align":26},"application\u002Fvnd.apple.installer+xml",[21,395,396,399,402],{},[40,397,398],{"align":26},".odp",[40,400,401],{"align":26},"OpenDocument 演示文档",[40,403,404],{"align":26},"application\u002Fvnd.oasis.opendocument.presentation",[21,406,407,410,413],{},[40,408,409],{"align":26},".ods",[40,411,412],{"align":26},"OpenDocument 电子表格文件",[40,414,415],{"align":26},"application\u002Fvnd.oasis.opendocument.spreadsheet",[21,417,418,421,424],{},[40,419,420],{"align":26},".odt",[40,422,423],{"align":26},"OpenDocument 文本文档",[40,425,426],{"align":26},"application\u002Fvnd.oasis.opendocument.text",[21,428,429,432,435],{},[40,430,431],{"align":26},".oga",[40,433,434],{"align":26},"OGG 音频",[40,436,437],{"align":26},"audio\u002Fogg",[21,439,440,443,446],{},[40,441,442],{"align":26},".ogv",[40,444,445],{"align":26},"OGG 视频",[40,447,448],{"align":26},"video\u002Fogg",[21,450,451,454,457],{},[40,452,453],{"align":26},".ogx",[40,455,456],{"align":26},"OGG",[40,458,459],{"align":26},"application\u002Fogg",[21,461,462,465,468],{},[40,463,464],{"align":26},".otf",[40,466,467],{"align":26},"OpenType 字体",[40,469,470],{"align":26},"font\u002Fotf",[21,472,473,476,479],{},[40,474,475],{"align":26},".png",[40,477,478],{"align":26},"便携式网络图形（PNG）",[40,480,481],{"align":26},"image\u002Fpng",[21,483,484,487,490],{},[40,485,486],{"align":26},".pdf",[40,488,489],{"align":26},"PDF",[40,491,492],{"align":26},"application\u002Fpdf",[21,494,495,498,501],{},[40,496,497],{"align":26},".ppt",[40,499,500],{"align":26},"Microsoft PowerPoint",[40,502,503],{"align":26},"application\u002Fvnd.ms-powerpoint",[21,505,506,509,512],{},[40,507,508],{"align":26},".pptx",[40,510,511],{"align":26},"Microsoft PowerPoint (OpenXML)",[40,513,514],{"align":26},"application\u002Fvnd.openxmlformats-officedocument.presentationml.presentation",[21,516,517,520,523],{},[40,518,519],{"align":26},".rar",[40,521,522],{"align":26},"RAR 存档",[40,524,525],{"align":26},"application\u002Fx-rar-compressed",[21,527,528,531,534],{},[40,529,530],{"align":26},".rtf",[40,532,533],{"align":26},"富文本格式 (RTF)",[40,535,536],{"align":26},"application\u002Frtf",[21,538,539,542,545],{},[40,540,541],{"align":26},".sh",[40,543,544],{"align":26},"Bourne shell 脚本",[40,546,547],{"align":26},"application\u002Fx-sh",[21,549,550,553,556],{},[40,551,552],{"align":26},".svg",[40,554,555],{"align":26},"可缩放矢量图形 (SVG)",[40,557,558],{"align":26},"image\u002Fsvg+xml",[21,560,561,564,567],{},[40,562,563],{"align":26},".swf",[40,565,566],{"align":26},"小型 web 格式 (SWF) or Adobe Flash document",[40,568,569],{"align":26},"application\u002Fx-shockwave-flash",[21,571,572,575,578],{},[40,573,574],{"align":26},".tar",[40,576,577],{"align":26},"Tape 归档(TAR)",[40,579,580],{"align":26},"application\u002Fx-tar",[21,582,583,586,589],{},[40,584,585],{"align":26},".tif",[40,587,588],{"align":26},"标记图像文件格式 (TIFF)",[40,590,591],{"align":26},"image\u002Ftiff",[21,593,594,597,600],{},[40,595,596],{"align":26},".tiff",[40,598,599],{"align":26},"Tagged Image File Format (TIFF)",[40,601,591],{"align":26},[21,603,604,607,610],{},[40,605,606],{"align":26},".ttf",[40,608,609],{"align":26},"TrueType 字体",[40,611,612],{"align":26},"font\u002Fttf",[21,614,615,618,621],{},[40,616,617],{"align":26},".txt",[40,619,620],{"align":26},"Text",[40,622,623],{"align":26},"text\u002Fplain",[21,625,626,629,632],{},[40,627,628],{"align":26},".vsd",[40,630,631],{"align":26},"Microsoft Visio",[40,633,634],{"align":26},"application\u002Fvnd.visio",[21,636,637,640,643],{},[40,638,639],{"align":26},".wav",[40,641,642],{"align":26},"波形音频格式",[40,644,645],{"align":26},"audio\u002Fwav",[21,647,648,651,654],{},[40,649,650],{"align":26},".weba",[40,652,653],{"align":26},"WEBM 音频",[40,655,656],{"align":26},"audio\u002Fwebm",[21,658,659,662,665],{},[40,660,661],{"align":26},".webm",[40,663,664],{"align":26},"WEBM 视频",[40,666,667],{"align":26},"video\u002Fwebm",[21,669,670,673,676],{},[40,671,672],{"align":26},".webp",[40,674,675],{"align":26},"WEBP 图片",[40,677,678],{"align":26},"image\u002Fwebp",[21,680,681,684,687],{},[40,682,683],{"align":26},".woff",[40,685,686],{"align":26},"网页开放字体格式 (WOFF)",[40,688,689],{"align":26},"font\u002Fwoff",[21,691,692,695,697],{},[40,693,694],{"align":26},".woff2",[40,696,686],{"align":26},[40,698,699],{"align":26},"font\u002Fwoff2",[21,701,702,705,708],{},[40,703,704],{"align":26},".xhtml",[40,706,707],{"align":26},"XHTML",[40,709,710],{"align":26},"application\u002Fxhtml+xml",[21,712,713,716,719],{},[40,714,715],{"align":26},".xls",[40,717,718],{"align":26},"Microsoft Excel",[40,720,721],{"align":26},"application\u002Fvnd.ms-excel",[21,723,724,727,730],{},[40,725,726],{"align":26},".xlsx",[40,728,729],{"align":26},"Microsoft Excel (OpenXML)",[40,731,732],{"align":26},"application\u002Fvnd.openxmlformats-officedocument.spreadsheetml.sheet",[21,734,735,738,741],{},[40,736,737],{"align":26},".xml",[40,739,740],{"align":26},"XML",[40,742,743],{"align":26},"application\u002Fxml（普通用户不可读）、text\u002Fxml（普通用户可读）",[21,745,746,749,752],{},[40,747,748],{"align":26},".xul",[40,750,751],{"align":26},"XUL",[40,753,754],{"align":26},"application\u002Fvnd.mozilla.xul+xml",[21,756,757,760,763],{},[40,758,759],{"align":26},".zip",[40,761,762],{"align":26},"ZIP",[40,764,765],{"align":26},"application\u002Fzip",[21,767,768,771,774],{},[40,769,770],{"align":26},".3gp",[40,772,773],{"align":26},"3GPP audio\u002Fvideo 容器",[40,775,776],{"align":26},"video\u002F3gpp、audio\u002F3gpp（不含视频）",[21,778,779,782,785],{},[40,780,781],{"align":26},".3g2",[40,783,784],{"align":26},"3GPP2 audio\u002Fvideo 容器",[40,786,787],{"align":26},"video\u002F3gpp2、audio\u002F3gpp2（不含视频）",[21,789,790,793,796],{},[40,791,792],{"align":26},".7z",[40,794,795],{"align":26},"7-zip",[40,797,798],{"align":26},"application\u002Fx-7z-compressed",[10,800,802],{"id":801},"简易-blob-下载文件封装","简易 blob 下载文件封装",[804,805,806],"p",{},"传入二进制流下载文件",[808,809,815],"pre",{"className":810,"code":812,"language":813,"meta":814},[811],"language-js","\u002F**\n * blobData 流文件\n * blobType 导出类型\n * fileName 导出文件名称\n * ..attr 其他信息\n *\u002F\nexport function dowloadBlobFile(blobData, blobType, fileName, ...attr) {\n    const blob = new Blob([blobData], {\n        type: blobType || \"application\u002Fvnd.ms-excel\",\n    })\n    const objectUrl = URL.createObjectURL(blob)\n    const link = document.createElement(\"a\")\n    link.style.display = \"none\"\n    link.href = objectUrl\n    document.body.appendChild(link)\n    link.click()\n    document.body.removeChild(link)\n}\n","js","",[816,817,812],"code",{"__ignoreMap":814},[804,819,820],{},"传入链接下载文件",[808,822,825],{"className":823,"code":824,"language":813,"meta":814},[811],"export function dowloadFile(url) {\n    const link = document.createElement(\"a\")\n    link.style.display = \"none\"\n    link.href = url\n    document.body.appendChild(link)\n    link.click()\n    document.body.removeChild(link)\n    link.remove()\n}\n",[816,826,824],{"__ignoreMap":814},[10,828,830],{"id":829},"blob-和-base64-互相转换","Blob 和 Base64 互相转换",[808,832,835],{"className":833,"code":834,"language":813,"meta":814},[811],"\u002F\u002F base64  to blob二进制\nfunction dataURItoBlob(dataURI) {\n    const mimeString = dataURI.split(\",\")[0].split(\":\")[1].split(\";\")[0] \u002F\u002F mime类型\n    const byteString = atob(dataURI.split(\",\")[1]) \u002F\u002F base64 解码\n    const arrayBuffer = new ArrayBuffer(byteString.length) \u002F\u002F 创建缓冲数组\n    const intArray = new Uint8Array(arrayBuffer) \u002F\u002F 创建视图\n\n    for (let i = 0; i \u003C byteString.length; i++) {\n        intArray[i] = byteString.charCodeAt(i)\n    }\n    return new Blob([intArray], { type: mimeString })\n}\n\n\u002F\u002F blob二进制 to base64\nfunction blobToDataURI(blob, callback) {\n    const reader = new FileReader()\n    reader.onload = function (e) {\n        callback(e.target.result)\n    }\n    reader.readAsDataURL(blob)\n}\n",[816,836,834],{"__ignoreMap":814},{"title":814,"searchDepth":838,"depth":838,"links":839},4,[840,842,843],{"id":12,"depth":841,"text":13},2,{"id":801,"depth":841,"text":802},{"id":829,"depth":841,"text":830},null,[846],"代码","2022-12-04 16:12:29","流文件常见类型概览及前端 Blob 文件下载简易封装",false,"md","https:\u002F\u002Fbitmc.uno\u002Fpicgo\u002Fblob-and-mime.jpg",{},true,"\u002Fposts\u002F2022\u002Fblob-and-mime",{"text":856,"minutes":857,"time":858,"words":859},"3 min read",2.61,156600,522,[861,864,866],{"title":862,"link":863},"Blob","https:\u002F\u002Fdeveloper.mozilla.org\u002Fzh-CN\u002Fdocs\u002FWeb\u002FAPI\u002FBlob",{"title":33,"link":865},"https:\u002F\u002Fdeveloper.mozilla.org\u002Fzh-CN\u002Fdocs\u002FWeb\u002FHTTP\u002FBasics_of_HTTP\u002FMIME_types",{"title":830,"link":867},"https:\u002F\u002Fwww.cnblogs.com\u002Fdcb3688\u002Fp\u002F4608062.html",{"title":5,"description":848},{"loc":854},"posts\u002F2022\u002Fblob-and-mime",[305,862,872],"MIME","GsRPPK4UFElXHitU15SA2xMVwwSFgrBs36oNvHEtu6o",[875,880],{"title":876,"path":877,"stem":878,"date":879,"type":844,"children":-1},"gin初始化项目","\u002Fposts\u002F2022\u002Fgin-setup","posts\u002F2022\u002Fgin-setup","2022-12-04 16:02:46",{"title":881,"path":882,"stem":883,"date":884,"type":844,"children":-1},"nest 拦截器","\u002Fposts\u002F2022\u002Fnest-exceptionfilter","posts\u002F2022\u002Fnest-ExceptionFilter","2022-12-04 16:14:54",1789642596012]