Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript/Node JS,下载文件时如何检查文件大小并下载文件的第一个KB_Javascript_Node.js - Fatal编程技术网

Javascript/Node JS,下载文件时如何检查文件大小并下载文件的第一个KB

Javascript/Node JS,下载文件时如何检查文件大小并下载文件的第一个KB,javascript,node.js,Javascript,Node.js,Javascript/Node JS,下载文件时如何检查文件大小并下载文件的第一个KB。检查文件的大小并下载文件的第一个kb,因为我想散列它,然后将第一个kb的散列与tje下载文件的散列进行比较。如果大小和哈希相同,则拒绝下载。否则,请下载文件并继续 我的代码在下载文件到服务器 基本下载功能代码 不确定你到底想做什么,但这是你要求的 允许您从文件中的任何位置读取任何字节集和任意数量的字节。如果需要,您可以轻松读取前10k字节 fs.stat()获取文件大小 读取文件的第一部分时,缓冲区对象中的内

Javascript/Node JS,下载文件时如何检查文件大小并下载文件的第一个KB。检查文件的大小并下载文件的第一个kb,因为我想散列它,然后将第一个kb的散列与tje下载文件的散列进行比较。如果大小和哈希相同,则拒绝下载。否则,请下载文件并继续

我的代码在下载文件到服务器 基本下载功能代码
不确定你到底想做什么,但这是你要求的

允许您从文件中的任何位置读取任何字节集和任意数量的字节。如果需要,您可以轻松读取前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()
用于读取文件的前1k
fs.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
      }
 });