You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
922 B
38 lines
922 B
3 years ago
|
'use strict'
|
||
|
|
||
|
const fastify = require('fastify')()
|
||
|
const fs = require('fs')
|
||
|
const path = require('path')
|
||
|
const pump = require('pump')
|
||
|
const form = path.join(__dirname, '..', 'form.html')
|
||
|
|
||
|
fastify.register(require('..'))
|
||
|
|
||
|
fastify.get('/', function (req, reply) {
|
||
|
reply.type('text/html').send(fs.createReadStream(form))
|
||
|
})
|
||
|
|
||
|
fastify.post('/upload/files', function (req, reply) {
|
||
|
const mp = req.multipart(handler, function (err) {
|
||
|
if (err) {
|
||
|
reply.send(err)
|
||
|
return
|
||
|
}
|
||
|
console.log('upload completed', process.memoryUsage().rss)
|
||
|
reply.code(200).send()
|
||
|
})
|
||
|
|
||
|
mp.on('field', function (key, value) {
|
||
|
console.log('form-data', key, value)
|
||
|
})
|
||
|
|
||
|
function handler (field, file, filename, encoding, mimetype) {
|
||
|
pump(file, fs.createWriteStream('a-destination'))
|
||
|
}
|
||
|
})
|
||
|
|
||
|
fastify.listen(3000, err => {
|
||
|
if (err) throw err
|
||
|
console.log(`server listening on ${fastify.server.address().port}`)
|
||
|
})
|