我正在使用Express.js
并有一条上传图片的路线,然后我需要调整它们的大小。目前我只是让Express
文件写入磁盘(我认为node-formidable
在幕后使用),然后使用gm
(http://aheckmann.github.com/gm/)调整大小,它将第二个版本写入磁盘。
gm(path)
.resize(540,404)
.write(dest, function (err) { ... });
我读过您可以在将node-formidable
文件流写入磁盘之前获取文件流,并且由于gm
可以接受流而不仅仅是路径,因此我应该能够通过消除对磁盘的双重写入来传递这一权利。
我想我需要覆盖form.onPart
,但我不确定在哪里(应该作为Express
中间件完成?)而且我不确定如何获取form
或如何处理part
. 这是我在几个地方看到的代码骨架:
form.onPart = function(part) {
if (!part.filename) { form.handlePart(part); return; }
part.on('data', function(buffer) {
});
part.on('end', function() {
}
}
有人可以帮我把这两部分放在一起吗?谢谢!