我可以通过船长上传图像,然后以锐利的方式调整它们的大小,但是对我来说似乎效率不高,因为船长文档概述了文件流可以在文件上传之前用于图像缩略图。
我可以使用清晰的模块动态调整图像大小吗?如果您提供一些示例,我将不胜感激。先感谢您。
借助this答案和this博客文章,我终于想出了一个解决方案:
upload: function(req, res) {
var sharp = require('sharp');
var Writable = require('stream').Writable;
var receiver = new Writable({objectMode: true});
receiver._write = function(file, enc, cb) {
var output = require('fs').createWriteStream('./assets/avatar/' + file.fd);
var resizeTransform = sharp().resize(100);
file.pipe(resizeTransform).pipe(output);
cb();
};
req.file('avatar').upload(receiver, (err, files) => {
if (err) {return res.serverError(err);}
return res.ok();
});
}