web-dev-qa-db-ja.com

Node.jsでファイルのサイズを見つける方法は?

画像やドキュメントのアップロードにmulterを使用していますが、今回は画像のサイズが2 MBを超える場合はアップロードを制限します。ドキュメントのファイルのサイズを確認するにはどうすればよいですか?これまでのところ、以下のように試しましたが、動作していません。

var storage = multer.diskStorage({
      destination: function (req, file, callback) {
        callback(null, common.upload.student);
      },
      filename: function (req, file, callback) {  
        console.log(file.size+'!!!!!!!!!!!!!!')======>'Undefined'
        var ext = '';
        var name = '';
        if (file.originalname) {
          var p = file.originalname.lastIndexOf('.');
          ext = file.originalname.substring(p + 1);
          var firstName = file.originalname.substring(0, p + 1);
          name = Date.now() + '_' + firstName;
          name += ext;
        }
        var filename = file.originalname;
        uploadImage.Push({ 'name': name });
        callback(null, name);
  }
});

誰でも助けてくれますか?

19
Daniel
var fs = require("fs"); //Load the filesystem module
var stats = fs.statSync("myfile.txt")
var fileSizeInBytes = stats["size"]
//Convert the file size to megabytes (optional)
var fileSizeInMegabytes = fileSizeInBytes / 1000000.0

または:

function getFilesizeInBytes(filename) {
    var stats = fs.statSync(filename)
    var fileSizeInBytes = stats["size"]
    return fileSizeInBytes
}
34
Jameel

上記の@gerryamurphyによるリンクは壊れているため、このために作成したパッケージにリンクします。

https://github.com/dawsbot/file-bytes

APIはシンプルで、簡単に使用できるはずです。

fileBytes('README.md').then(size => { console.log(`README.md is ${size} bytes`); });

ヘルプが必要な場合はお知らせください!

1
Dawson B

さらに、NPMファイルサイズパッケージを使用します https://www.npmjs.com/package/filesize

このパッケージは、物事をもう少し設定可能にします

var fs = require("fs"); //Load the filesystem module

var filesize = require("filesize"); 

var stats = fs.statSync("myfile.txt")

var fileSizeInMb = filesize(stats.size, {round: 0});

https://www.npmjs.com/package/filesize#examples

1
gerryamurphy