2017-04-05 6 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); 
}); 

そして出力に含まは次のようになります:あなたはarrayBufferを使用することができます

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

このように、私はファイルシステムなどで可能性は何も検索しません。 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

(私は、ダウンロードをするために何をしたかのthats pdf)またはcreateReadStream/createWriteStream(ファイルシステムオブジェクト)

関連する問題