2017-04-05 57 views
0

我想知道是否可以使用現有文件的路徑在NodeJS中創建文件對象(名稱,大小,數據等)?我知道它可能在客戶端,但我沒有看到任何NodeJS。如何用NodeJS中的路徑創建文件對象?

在別人的話,我想的NodeJS相同功能的工作原理:

function srcToFile(src, fileName, mimeType){ 
    return (fetch(src) 
     .then(function(res){return res.arrayBuffer();}) 
     .then(function(buf){return new File([buf], fileName, {type:mimeType});}) 
    ); 
} 

srcToFile('/images/logo.png', 'logo.png', 'image/png') 
.then(function(file){ 
    console.log(file); 
}); 

而且輸出中會像:

File {name: "logo.png", lastModified: 1491465000541, lastModifiedDate: Thu Apr 06 2017 09:50:00 GMT+0200 (Paris, Madrid (heure d’été)), webkitRelativePath: "", size: 49029, type:"image/png"…} 
+0

您正在尋找[fs.stat](https://nodejs.org/api/fs.html#fs_fs_stat_path_callback),但如果您想要文件中的數據,您需要將它與[fs .readFile](https://nodejs.org/api/fs.html#fs_fs_readfile_file_options_callback)。 –

回答

0

因此,我用File Systems和其他方法進行搜索,並且沒有任何東西。 我決定用JSON創建自己的File對象。

var imagePath = path.join('/images/logo.png', 'logo.png'); 

    if (fs.statSync(imagePath)) { 
    var bitmap = fs.readFileSync(imagePath); 
    var bufferImage = new Buffer(bitmap); 

    Magic = mmm.Magic; 
    var magic = new Magic(mmm.MAGIC_MIME_TYPE); 
    magic.detectFile(imagePath, function(err, result) { 
      if (err) throw err; 
      datas = [{"buffer": bufferImage, "mimetype": result, "originalname": path.basename(imagePath)}]; 
      var JsonDatas= JSON.parse(JSON.stringify(datas)); 
      log.notice(JsonDatas); 
    }); 
} 

輸出:

{ 
    buffer: 
    { 
    type: 'Buffer', 
    data: 
    [ 
     255, 
     216, 
     255 
     ... 24908 more items, 
     [length]: 25008 
    ] 
    }, 
    mimetype: 'image/png', 
    originalname: 'logo.png' 
} 

我覺得可能不是更好的解決方案,但它給我我想要的東西。如果您有更好的解決方案,歡迎您。

-2

您可以使用arrayBuffer(那是什麼我做製作可下載pdf)或createReadStream/createWriteStream在fs(FileSystem對象)下

相關問題