按照网上的教程贴(罕见原生),做了个上传文件的处理,有些不太明白的地方想请教一下。
可否帮我写一下注释,让我明白每一段的意思,作用。
console.log("传入文件:处理chunk");
var chunks = [];
var bufferconcat;
req.on("data",function(chunk){
chunks.push(chunk);
size = chunk.length;
});
var newArray=[];
req.on("end",function(){
bufferconcat = Buffer.concat(chunks,size);//由这里开始不太明白,是怎么处理的二进制,怎么筛选出来的头信息还有去掉头尾。
console.log(bufferconcat);
for(var a = 0;a<bufferconcat.length;a++){
if(bufferconcat[a].toString() == 13 && bufferconcat[a+1].toString() == 10){
newArray.push(a);
}
}
var name = bufferconcat.slice(newArray[0],newArray[1]).toString().split(";")[2].split("=")[1];
var filename = name.split("\"");
console.log(filename);
//这下面的newArray[3]+2 其中+2是什么意思?
var data = bufferconcat.slice(newArray[3]+2,newArray[newArray.length-2]);
fs.writeFileSync("./"+filename[1] , data);
});
加2是为了得到真正的内容,只是特别的偏移量而已,需要看具体下载的内容