wake-up-neo.com

Wie finde ich die Größe der Datei in Node.js?

Ich verwende Mulcher zum Hochladen meiner Bilder und Dokumente, aber dieses Mal möchte ich das Hochladen einschränken, wenn das Bild größer als 2 MB ist. Wie kann ich die Dateigröße des Dokuments ermitteln? Bisher habe ich versucht wie unten aber nicht zu funktionieren.

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);
  }
});

Kann mir bitte jemand helfen?

15
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

oder:

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

Verwenden Sie außerdem das NPM-Paket "filesize" https://www.npmjs.com/package/filesize

Dieses Paket macht die Dinge etwas konfigurierbarer

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

Der Link oben von @gerryamurphy ist für mich defekt, daher werde ich auf ein Paket verweisen, das ich dafür erstellt habe.

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

Die API ist einfach und sollte leicht zu verwenden sein: 

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

Lassen Sie mich wissen, wenn Sie Hilfe brauchen!

0
Dawson Botsford