Maison > interface Web > js tutoriel > Explication détaillée du cas de téléchargement de fichiers à l'aide de nodejs+express

Explication détaillée du cas de téléchargement de fichiers à l'aide de nodejs+express

php中世界最好的语言
Libérer: 2018-05-10 10:29:27
original
2203 Les gens l'ont consulté

Cette fois, je vous apporte une explication détaillée du cas de l'implémentation nodejs+express du téléchargement de fichiers Quelles sont les précautions de l'implémentation nodejs+express du téléchargement de fichiers. les cas pratiques. Jetons un coup d'oeil une fois.

Quand je travaillais sur un projet personnel il y a quelque temps, j'utilisais le serveur nodejs pour télécharger des fichiers. Je vais maintenant résumer cela pour mémoire.

Lorsque je télécharge des fichiers, j'utilise le multiparty d'Express. Bien sûr, cela peut également être implémenté à l'aide de connect-multipartymiddleware, mais le responsable ne semble pas recommander l'utilisation de connect-multiparty. middleware. Sans plus tarder, regardons le code ci-dessous.

Étapes :

(1) Utilisez express pour créer un projet La valeur par défaut est jademoteur de modèles, mais Je suis toujours habitué au HTML, alors je l'ai changé en modèle HTML.
(2) Dans le répertoire du projet, installez les composants nécessaires via npm install multiparty.
(3) Modifiez vues/index.html et ajoutez un formulaire de téléchargement de fichier.

index.html

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>上传文件</title>
</head>
<body>
  上传文件
  <form method=&#39;post&#39;, action=&#39;/file/uploading&#39;, enctype=&#39;multipart/form-data&#39;>
    <input type="file" name="inputFile">
    <input type="submit" value="上传">
  </form>
</body>
</html>
Copier après la connexion

(4) Modifiez routes/index.js pour implémenter le code d'arrière-plan pour le téléchargement de pages et le téléchargement de réponses.

var express = require('express');
var router = express.Router();
var multiparty = require('multiparty');
var util = require('util');
var fs = require('fs');
/* 上传页面. */
router.get('/', function(req, res, next) {
 //res.render('./views/index');
 res.sendfile('./views/index.html');
});
/* 上传 */
router.post('/file/uploading', function(req, res, next) {
  /* 生成multiparty对象,并配置上传目标路径 */
  var form = new multiparty.Form();
  /* 设置编辑 */
  form.encoding = 'utf-8';
  //设置文件存储路劲
  form.uploadDir = './public/files';
  //设置文件大小限制
  form.maxFilesSize = 2 * 1024 * 1024;
  // form.maxFields = 1000;  //设置所有文件的大小总和
  //上传后处理
  form.parse(req, function(err, fields, files) {
    var filesTemp = JSON.stringify(files, null, 2);
    if(err) {
      console.log('parse error:' + err);
    }else {
      console.log('parse files:' + filesTemp);
      var inputFile = files.inputFile[0];
      var uploadedPath = inputFile.path;
      var dstPath = './public/files' + inputFile.originalFilename;
      //重命名为真实文件名
      fs.rename(uploadedPath, dstPath, function(err) {
        if(err) {
          console.log('rename error:' + err);
        }else {
          console.log('rename ok');
        }
      })
    }
    res.writeHead(200, {'content-type': 'text/plain;charset=utf-8'});
    res.write('received upload:\n\n');
    res.end(util.inspect({fields: fields, files: filesTemp}))
  })
})
module.exports = router;
Copier après la connexion

Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !

Lecture recommandée :

Instructions du didacticiel Webpack packaging et compression js et css

Explication détaillée des étapes d'utilisation du réactif natif swiper de plug-in d'emballage

Quels sont les moyens de crypter les mots de passe dans nodejs

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal