0
我想在nodejs上重新上傳大小並通過ftp發送它。 使用nodejs,busboy,GraphicsMagick和jsftp。busboy「文件」gm到ftp上傳
var uploadFile = function(dir, req, cb) {
req.busboy.on('file', function(fieldname, file, filename, encoding, mimetype) {
var imageMagick = gm.subClass({
imageMagick: true
});
console.log('Resizing file...');
console.log(filename);
imageMagick(file)
.resize(150, 150)
.stream(function(err, stdout, stderr) {
if (err)
console.log(err);
var i = [];
stdout.on('data', function(data) {
console.log('data');
i.push(data);
});
stdout.on('close', function() {
console.log('close');
var image = Buffer.concat(i);
console.log(image.length);
console.log(image);
ftp.put(image, filepath, function(hadError) {
if (!hadError) {
filename = config.one.filepath + dir + "/" + filename;
cb(null, filename);
} else {
console.log(hadError);
cb(hadError, 'Error');
}
});
});
});
});
req.pipe(req.busboy);
};
輸出現在是:
Resizing file...
100-0001_IMG.JPG
close
0
<Buffer >
在FTP服務器端,我得到一個0字節的文件,也從來沒有做CB。 我發現這兩個問題,但couln't讓它爲我工作: Question 1 Question 2
我想一定是壞了我的文件,我給了通用汽車,因爲「數據」不會被寫入控制檯。 由於我設法上傳一個不受限制的文件到ftp服務器,所以自己文件很好。
我感謝您的幫助!
THX
您是否嘗試添加stdout.error事件以查看imageMagick可能出現的錯誤? –
是的,這有點幫助:「Unzul」ssiger參數 - 「resize」 - >「無效的參數 - - 大小」。但不知道如何解決它。如果你有一個奇怪的版本,你可以使用imageMagick(file).stream(function(err,stdout,stderr){「giveback:」Unzul「ssiger參數 - 」@RaxWunter – PowPi
所以問題是imageMagick。安裝imagemagick和node-imagemagick –