busboy.on('error', (err) => { debugLog(options, `Busboy error`); next(err); });
busboy.on('finish', () => { debugLog(options, `Busboy finished parsing request.`); if (options.parseNested) { req.body = processNested(req.body); req.files = processNested(req.files); } if (!req[waitFlushProperty]) return next(); Promise.all(req[waitFlushProperty]) .then(() => { delete req[waitFlushProperty]; next(); }).catch(err => { delete req[waitFlushProperty]; debugLog(options, `Error while waiting files flush: ${err}`); next(err); }); });
// Build multipart req.body fields busboy.on('field', (field, val) => req.body = buildFields(req.body, field, val));
busboy.on('file', (field, file, name, encoding, mime) => { }); file.on('limit', () => { debugLog(options, `Size limit reached for ${field}->${filename}, bytes:${getFileSize()}`); file.on('data', (data) => { uploadTimer.set(); // Refresh upload timer each time new data chunk came. file.on('end', () => { const size = getFileSize(); }); file.on('error', (err) => {
router.post('/image', (req, res, next) => { let fstream; req.pipe(req.busboy); req.busboy.on('file', (fieldname, file, filename) => { fstream = fs.createWriteStream(config.base_dir + '/source/images/' + filename); file.pipe(fstream); fstream.on('close', () => { res.send('/images/' + filename); }); }); });
// Make sure that he upload path exits /** * Create route /upload which handles the post request */ app.route('/upload').post((req, res, next) => { req.pipe(req.busboy); // Pipe it trough busboy req.busboy.on('file', (fieldname, file, filename) => { console.log(`Upload of '${filename}' started`); // Create a write stream of the new file const fstream = fs.createWriteStream(path.join(uploadPath, filename)); // Pipe it trough file.pipe(fstream); // On finish of the upload fstream.on('close', () => { console.log(`Upload of '${filename}' finished`); res.redirect('back'); }); }); });
busboy.on('file', (fieldname, file, filename, encoding, mimetype) => { console.log(fieldname, file, filename, encoding, mimetype); if (mimetype !== 'image/jpeg' && mimetype !== 'image/png') { return res.status(400).json({ error: 'Wrong file type submitted' }); } // my.image.png => ['my', 'image', 'png'] const imageExtension = filename.split('.')[filename.split('.').length - 1]; // 32756238461724837.png imageFileName = `${Math.round( Math.random() * 1000000000000 ).toString()}.${imageExtension}`; const filepath = path.join(os.tmpdir(), imageFileName); imageToBeUploaded = { filepath, mimetype }; file.pipe(fs.createWriteStream(filepath)); });
app.post('/', (req, res) => { let upload = new Busboy({headers: req.headers}) let files = [] let counter = 0; upload.on('file', (field, stream, name) => { counter++ stream.pipe(request.put(`https://transfer.sh/${name}`, (err, response) => { if (err) throw err files.push(response.body.trim()) counter-- if (counter === 0) { res.json(files) } })) }) //liga request no upload (budboy) req.pipe(upload) })
// Triggered once all uploaded files are processed by Busboy. // We still need to wait for the disk writes (saves) to complete. busboy.on('finish', () => { Promise.all(fileWrites).then(() => { // TODO(developer): Process saved files here for (const name in uploads) { const file = uploads[name]; fs.unlinkSync(file); } res.send(); }); });
busboy.on('file', (fieldname, file, filename) => { if (fieldname === 'image') { console.log(`Processed file ${filename}`); const filepath = path.join(tmpdir, filename); uploads[fieldname] = filepath; file.pipe(fs.createWriteStream(filepath)); } });
// For each field in the request busboy.on('field', (fieldname, value) => { // Check for the Plex webhook's payload field if (fieldname === 'payload') { const payload = JSON.parse(value); // Read the payload to control Hue lights readPayload(payload); // Send payload in response for testing & debugging callback(null, { payload }); } });
// This code will process each file uploaded. busboy.on('file', (fieldname, file, filename) => { // Note: os.tmpdir() points to an in-memory file system on GCF // Thus, any files in it must fit in the instance's memory. console.log(`Processed file ${filename}`); const filepath = path.join(tmpdir, filename); uploads[fieldname] = filepath; const writeStream = fs.createWriteStream(filepath); file.pipe(writeStream); // File was processed by Busboy; wait for it to be written to disk. const promise = new Promise((resolve, reject) => { file.on('end', () => { writeStream.end(); }); writeStream.on('finish', resolve); writeStream.on('error', reject); }); fileWrites.push(promise); });
busboy.on('field', (fieldname, val) => { fields[fieldname] = val; });
// This code will process each non-file field in the form. busboy.on('field', (fieldname, val) => { // TODO(developer): Process submitted field values here console.log(`Processed field ${fieldname}: ${val}.`); fields[fieldname] = val; });
busboy.on('error', (error) => { console.log(error) })