Javascript/Node JS,下载文件时如何检查文件大小并下载文件的第一个KB
Javascript/Node JS,下载文件时如何检查文件大小并下载文件的第一个KB。检查文件的大小并下载文件的第一个kb,因为我想散列它,然后将第一个kb的散列与tje下载文件的散列进行比较。如果大小和哈希相同,则拒绝下载。否则,请下载文件并继续 我的代码在下载文件到服务器 基本下载功能代码Javascript/Node JS,下载文件时如何检查文件大小并下载文件的第一个KB,javascript,node.js,Javascript,Node.js,Javascript/Node JS,下载文件时如何检查文件大小并下载文件的第一个KB。检查文件的大小并下载文件的第一个kb,因为我想散列它,然后将第一个kb的散列与tje下载文件的散列进行比较。如果大小和哈希相同,则拒绝下载。否则,请下载文件并继续 我的代码在下载文件到服务器 基本下载功能代码 不确定你到底想做什么,但这是你要求的 允许您从文件中的任何位置读取任何字节集和任意数量的字节。如果需要,您可以轻松读取前10k字节 fs.stat()获取文件大小 读取文件的第一部分时,缓冲区对象中的内
不确定你到底想做什么,但这是你要求的 允许您从文件中的任何位置读取任何字节集和任意数量的字节。如果需要,您可以轻松读取前10k字节
fs.stat()
获取文件大小
读取文件的第一部分时,缓冲区对象中的内容发送到回调:
function readStartOfFile(filename, sizeToRead, callback) {
fs.open(filename, 'r', (err, fd) => {
if (err) {
callback(err);
} else {
let newBuffer = Buffer.alloc(sizeToRead);
// fd, buffer, offset, length, position, callback
fs.read(fd, newBuffer, 0, sizeToRead, 0, (err, bytesRead, buffer) => {
fs.close(fd);
if (err) {
callback(err)
} else {
callback(null, buffer);
}
});
}
});
}
// sample usage
readStartOfFile("somefile.txt", 1024 * 10, (err, buffer) => {
if (err) {
// handle error here
} else {
// use buffer here
}
});
记下你想做什么
fs.read()
用于读取文件的前1kfs.stat()
获取文件大小。我只想下载文件的前10KB@jfriend00。你看了fs.read()
的功能了吗。它可以让你从一个文件中读取你想要的任何一组字节,1k、10k、100k、2字节等等。我不建议使用读取整个文件的fs.readFile()
。我推荐了fs.read()
。我已经更新了我的代码和问题,请检查您是否可以发布您的答案,以便我可以上传。评论不用于扩展讨论;这段对话已经结束。
var download = function (url, dest, callback) {
request.get(url)
.on('error', function (err) { console.log(err) })
.pipe(fs.createWriteStream(dest))
.on('close', callback);
};
final_list.forEach(function (str) {
var filename = str.split('/').pop();
console.log('Downloading ' + filename);
download(str, filename, function () { console.log('Finished Downloading' + "" + filename) });
});
function readStartOfFile(filename, sizeToRead, callback) {
fs.open(filename, 'r', (err, fd) => {
if (err) {
callback(err);
} else {
let newBuffer = Buffer.alloc(sizeToRead);
// fd, buffer, offset, length, position, callback
fs.read(fd, newBuffer, 0, sizeToRead, 0, (err, bytesRead, buffer) => {
fs.close(fd);
if (err) {
callback(err)
} else {
callback(null, buffer);
}
});
}
});
}
// sample usage
readStartOfFile("somefile.txt", 1024 * 10, (err, buffer) => {
if (err) {
// handle error here
} else {
// use buffer here
}
});