ich die folgende Bibliothek verwenden möchten, Bilder zu komprimieren https://github.com/imagemin/imageminWie imagemin verwenden, um Bilder und busboy zu komprimieren
Das Problem ist, wenn die Börse ein Formular verwenden, wie steck ich in den Dateidetails aus dem Formular zum Bild min Plugin? Wie zum Beispiel, wenn das Dateiformular-Feld Beispiel-Bild aufgerufen wird, wie schließe ich dieses Datei-Formular-Feld an Bild min Plugin, so dass es die Bilder komprimieren kann?
Ich habe versucht:
req vom Express ist/NodeJS req
var filebus = new Busboy({ headers: req.headers }),
promises = [];
filebus.on('file', function(fieldname, file, filename, encoding, contentType) {
var fileBuffer = new Buffer(0),
s3ImgPath;
if (file) {
file.on('data', function (d) {
fileBuffer = Buffer.concat([fileBuffer, d]);
}).on('end', function() {
Imagemin.buffer(fileBuffer, {
plugins: [
imageminMozjpeg(),
imageminPngquant({quality: '80'})
]
}).then(function (data) {
console.log(data[0]);
if (s3ImgPath) {
promises.push(this.pushImageToS3(s3ImgPath, data[0].data, contentType));
}
});
}.bind(this));
}
});
Aber das Problem ist, ich eher einen Puffer der Datei, die ich auf S3 hochladen. Ich möchte die Dateien nicht in einen Build/Images-Ordner bringen. Ich möchte einen Puffer für die Datei bekommen, sie komprimieren und diesen Puffer auf s3 hochladen. Wie kann ich image min verwenden, um einen Puffer des Datei-Uploads per HTML-Formular zu erhalten und dieses auf s3 hochzuladen?
zeigen Bitte jeden Code, den Sie bisher haben. Vorzugsweise ein funktionierender Server und eine Webseite mit einem Formular. – tcooc
Ich habe weitere Informationen hinzugefügt –
Verwenden Sie es - https://www.npmjs.com/package/compress-images –