Maxy.fr

Débuter avec Node.js : Uploader simplement un fichier sur votre serveur

Il est possible de gérer la réception de fichiers en Node.JS à l’aide du module Express.

Dans un premier temps si vous n’avez pas déjà installé ce module, faite le à l’aide de la commande suivante, en ayant pris soin de vous placer dans le dossier où se trouve vos fichiers serveur node.

npm install express

Une fois ce module installé, voici le code complet du fichier serveur permettant la gestion de l’upload de fichiers :

var express = require('express');
 
var app = express();
app.use(express.bodyParser({ keepExtensions: true, uploadDir:'./uploads'}));
 
app.get('/', function(req, res) {
     res.setHeader('Content-Type', 'text/html');
     res.end(
     '<form action="/upload" method="post" enctype="multipart/form-data">'+
     '<input type="file" name="uploadfile">'+
     '<input type="submit" value="Envoyer">'+
     '</form>'
 );
});
 
app.post('/upload', function(req, res) {
     res.setHeader('Content-Type', 'text/html');
     res.end(req.files.uploadfile.path);
});
 
app.listen(8000);

Explications :

  • Ligne 1 : Permet d’indiquer que l’on souhaite utiliser le module Express
  • Ligne 4 : On indique ici à l’aide du « bodyParser » le dossier d’enregistrement des fichiers ("uploadDir:’./uploads’") et le fait que l’on souhaite que l’extension d’origine du fichier reste ("keepExtensions: true"). Attention l’utilisation de bodyParser est obligatoire pour ce code (les paramètres sont eux facultatifs).
  • Ligne 6 à 14 : Création de la page HTML contenant le formulaire d’envoi du fichier. Il sera accessible à la racine du site, à l’adresse http://votredomaine:port/.
  • Ligne 16 à 19 : C’est la page sur laquelle nous renvoi le formulaire précédent, elle affichera le dossier ainsi que le nom du fichier envoyé (/uploads/fichier.extension).
  • Ligne 21 : Le port utilisé.

Vos fichiers seront envoyé sur le serveur avec un nom différent de celui d’origine. Le nom d’origine est accessible depuis « req.files.uploadfile.originalFilename » de l’objet « req » utilisé à la ligne 18.

Aperçu de l’objet « req » de la ligne 18 :

capture 2013-11-11 à 01.03.18

Catégories : Node.JS

Par Guillaume le 11/11/2013 à 23:20

Partager l'article :

Articles similaires

Retrouver et arrêter une instance de Node.JS restée active

Si vous vous amusez un peu avec Node.JS, vous avez surement déjà exécuté un fichier node et le laisser tourner en fond. Vous avez l'habitude d'utiliser le raccourcie ctrl + c (cmd + c) ou ctrl + z (cmd + z) pour suspendre ou arrêter son processus, cependant si vous...

Démarrer automatiquement Node.JS au démarrage de son serveur

Si vous avez déjà fait des programmes en utilisant Node.JS, vous êtes surement déjà tombé sur ce problème : Les scripts Node.JS ne se relance pas automatiquement lorsque l'on redémarre son serveur. Il faut donc s'y connecter manuellement pour...

Labo : Une radio 100% automatisée

Ce n'est pas nouveau, mais il n'y a encore aucun article qui en parle. Je parle de la "radio" que vous pouvez voir depuis plusieurs mois (décembre 2013) dans le labo du site. Vous avez peut-être déjà jeté un oeil et remarqué qu'il s'agissait de clips...