音乐网站的设计,品牌建设与管理提案,清丰网站建设价格,便宜做网站的公司哪家好nodejs进行文件切片合并
使用nodejs读取文件流#xff0c;并对流进行切片合并等操作#xff0c;就需要用到Buffer对象#xff0c;可对文件流进行切片#xff0c;并合并。
const fs require(fs)// 读取一个文件#xff0c;使用fs读取文件获取一个Buffer类型数据
const b… nodejs进行文件切片合并
使用nodejs读取文件流并对流进行切片合并等操作就需要用到Buffer对象可对文件流进行切片并合并。
const fs require(fs)// 读取一个文件使用fs读取文件获取一个Buffer类型数据
const buffer fs.readFileSync(./test.mp4)// 将文件进行切分
const file1 buffer.subarray(0,3000000)
const file2 buffer.subarray(3000000)// 全并多个切片文件
const allfile Buffer.concat([file1,file2])// 读取文件切片
const s1 fs.readFileSync(./test_s1.mp4)
const s2 fs.readFileSync(./test_s2.mp4)// 将读取的文件切片合并
const bb Buffer.concat([s1,s2])// 将合并的切片数据写到一个新文件中
fs.writeFileSync(./test2.mp4,bb) js进行文件切片合并
如果想在页面上操作文件就需要使用到与文件相关的API接口如Blob、File、FileList、FileReader、FileReaderSync这几个就是操作文件常见的接口。
Blob是实现文件切片的一个核心接口因为它是一个不可变的类文件对象可以使用Blob本身的slice方法对文件本身进行切片。
html langzh-cnheadmeta title文件切片合并 /
/headbody!-- 页面选择文件 --input typefile idfile/!-- 将加载的视频文件进行切片后合并并播放 --video idplay controls stylewidth:500px;height:auto/video
/body
scriptfile.addEventListener(change,async (e){// 获取FileList中的File文件let file2 file.files[0]// ----------第一种方式-------------------// 使用Blob的slice方法切片使用Blob构造函数进行数据合并// 将加载的文件进行切片// let s1 file2.slice(0,100)// let s2 file2.slice(100)// 将切片的文件进行数据合并// let newFile new Blob([s1,s2])// -----------第二种方式------------------// 如何对大文件进行流式读取let chunckArr []// 通过Blob获取 ReadableStream 流对象再获取可读的流读取器let reader file2.stream().getReader()let done falsewhile(!done){// 使用流读取器的read方法获取流队列中的下一个分块数据let {value,done: readDone} await reader.read()console.log(value)chunckArr.push(value)done readDone}// 通过Blob构造函数合并流数据let newFile new Blob(chunckArr)// 进行页面播放play.setAttribute(src,URL.createObjectURL(newFile))})/script
/html