关于node 服务端 来实现图片预览的效果的问题(已解决)
发布于 8 年前 作者 hc2014 4361 次浏览 最后一次编辑是 6 年前 来自 问答

QQ截图20150120103405.jpg 这个图是我获取到图片的信息的,现在想就这个信息,转成图片 然后输出到页面,不知道能否实现,前辈们,知道怎么搞的给了例子呗!

6 回复

想先請問這個圖片訊息是怎麼取得的?

@chinghanho smb2这个模块

@hc2014 可以給點 code 看嗎?

@chinghanho 不知道你想要什么代码,你在github上找到node-smb2这个模块,基本都有例子代码了,读取文件夹内的文件用 readdir 这个函数,原本 这个函数只会返回 filename即 只会返回文件的名称, 你在/api/readdir 这个JS里面找到

module.exports = function(path, cb){
  var connection = this;
  // SMB2 open directory
  SMB2Request('open', {path:path}, connection, function(err, file){
    if(err) cb && cb(err);
    // SMB2 query directory
    else SMB2Request('query_directory', file, connection, function(err, files){
      if(err) cb && cb(err);
      // SMB2 close directory
      else SMB2Request('close', file, connection, function(err){
        cb && cb(
          null
        , files
            .map(function(v){ return v.Filename }) // get the filename only
            .filter(function(v){ return v!='.' && v!='..' }) // remove '.' and '..' values
        );
      });
    });
  });

这一块代码,把 return v.Filename 改成 return v就行了

node-smb2 既有 readdir 也有 readFile,讀出檔案後就可以做寫入了:

smb2Client.readFile(source_path, function(err, data){
  if (err) throw err
  fs.writeFile(save_path, data, function(err) {
    if (err) return // handle err
    console.log('completed!')
  })
})

@chinghanho 是的,已经解决了

回到顶部