2017-02-21 23 views
4

我正在使用MULTER上傳我的圖像和文檔,但是這次我想限制上傳,如果圖像的大小> 2MB。我怎樣才能找到文件的文件大小?到目前爲止,我嘗試瞭如下但不工作。如何在Node.js中找到文件的大小?

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

任何人都可以幫我嗎?

+0

你是如何調用'filename'功能 – brk

+0

嗨BRK,我不知道這一點,但我使用回調了點。 – Daniel

回答

6
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 
} 
+0

H Jamsam是否需要上傳文件夾中的文件才能找到尺寸,因爲我只想在尺寸小於2mb時上傳 – Daniel

+0

您是否想要在上傳文件之前檢查前端的尺寸? – Jameel

+0

根據模塊「fs」的文檔,狀態類不會按照我的想法上傳文件:[fs](https://nodejs.org/api/fs.html#fs_class_fs_stats) – Jameel

相關問題