Created
April 16, 2018 09:53
-
-
Save maylisdoucet/b64194f273cc86d2e698b844846f8c72 to your computer and use it in GitHub Desktop.
uploadFile
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var createError = require('http-errors'); | |
var express = require('express'); | |
var path = require('path'); | |
var cookieParser = require('cookie-parser'); | |
var logger = require('morgan'); | |
var usersRouter = require('./routes/users'); | |
var indexRouter = require('./routes/index'); | |
var usersRouter = require('./routes/users'); | |
var app = express(); | |
// view engine setup | |
app.set('views', path.join(__dirname, 'views')); | |
app.set('view engine', 'pug'); | |
app.use(logger('dev')); | |
app.use(express.json()); | |
app.use(express.urlencoded({ extended: false })); | |
app.use(cookieParser()); | |
app.use(express.static(path.join(__dirname, 'public'))); | |
app.use('/', indexRouter); | |
app.use('/users', usersRouter); | |
// catch 404 and forward to error handler | |
app.use(function(req, res, next) { | |
next(createError(404)); | |
}); | |
// error handler | |
app.use(function(err, req, res, next) { | |
// set locals, only providing error in development | |
res.locals.message = err.message; | |
res.locals.error = req.app.get('env') === 'development' ? err : {}; | |
// render the error page | |
res.status(err.status || 500); | |
res.render('error'); | |
}); | |
module.exports = app; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var express = require('express'); | |
var router = express.Router(); | |
var multer = require('multer') | |
var upload = multer({ dest: 'tmp/' }) | |
const fs = require('fs'); | |
router.get('/sendFile', function (req, res, next) { | |
res.render('index', {sayHello: 'Veux-tu envoyer des fichiers ?'}) | |
}); | |
// Veux-tu envoyer des fichiers ? | |
router.post('/sendFile', upload.array('monfichier', 3), function (req, res, next) { | |
// traitement du formulaire | |
for (i in req.files) { | |
if ((req.files[i].size < 3000000) &&(req.files[i].mimetype == 'image/png')) { | |
// les deux conditions : fichier avec taille inférieur à 3mo et de type png ! | |
fs.rename(req.files[i].path, 'public/images/' + req.files[i].originalname, function(err){ | |
if (err) { | |
res.send('Problème !'); | |
} else { | |
res.send('Fichier uploadé avec succès'); | |
} | |
}); | |
} else { | |
res.send('Le fichier est trop lourd. (Supérieur à 3 Mo)') | |
} | |
} | |
}); | |
module.exports = router; | |
//Dans ton dossier contenant ton projet généré avec l'express-generator, | |
// tu vas créer une nouvelle route dans routes/index.js ; | |
// cette route sera en POST (/monupload) et permettra de gérer l'upload de fichiers. | |
// L'utilisateur pourra envoyer envoyer des images, | |
// seulement au format *.png | |
// et avec une taille inférieure à 3mo. | |
// Tu peux informer l'utilisateur du type de format accepté (png) | |
// grâce à l'attribut HTML accept. /* |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
extends layout | |
block content | |
h1= title | |
p Welcome to #{title} | |
form(method='POST', enctype='multipart/form-data', action='sendFile') | |
input(type='file', name='monfichier') | |
button envoyer | |
// l'action sendFile doit avoir le même nom que les routes get et post ! |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment