nodejs+express实现文件上传案例详解

这次给大家带来nodejs+express实现文件上传案例详解,nodejs+express实现文件上传的注意事项有哪些,下面就是实战案例,一起来看一下。

前段时间在做个人项目的时候,用到了nodejs服务端上传文件,现在回头把这个小结一下,作为记录。

本人上传文件时是基于express的multiparty ,当然也可以使用connect-multiparty中间件实现,但官方似乎不推荐使用connect-multiparty中间件。废话不多说,下面看代码吧。

步骤:

(1)使用express创建项目,默认使用的是jade模板引擎,但是还是习惯于html,所以就改为html模板。
(2)在项目目录中,通过npm install multiparty进行安装必要组件。
(3)修改views/index.html,添加一个文件上传的form。

index.html

    上传文件  上传文件            

登录后复制

(4)修改routes/index.js,实现上传页面和上传响应的后台代码。

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:');    res.end(util.inspect({fields: fields, files: filesTemp}))  })})module.exports = router;

登录后复制

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读:

webpack打包压缩js与css教程说明

react-native封装插件swiper使用步骤详解

给nodejs里密码加密有哪几种方式

以上就是nodejs+express实现文件上传案例详解的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2762988.html

(0)
上一篇 2025年3月8日 10:05:13
下一篇 2025年3月8日 10:05:21

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • JS生成时间列表并输出

    这次给大家带来JS生成时间列表并输出,JS生成时间列表并输出的注意事项有哪些,下面就是实战案例,一起来看一下。 遇到一个场景,需要拿到指定时间范围内的每一天,满足格式”YYYYMMDD”,简单的功能,简单的思路 准备…

    2025年3月8日
    200
  • angularjs自定义缓存使用案例详解

    这次给大家带来angularjs自定义缓存使用案例详解,angularjs自定义缓存使用的注意事项有哪些,下面就是实战案例,一起来看一下。 一、什么是缓存 一个缓存就是一个组件,它可以透明地存储数据,以便未来可以更快地服务于请求。 缓存能够…

    编程技术 2025年3月8日
    200
  • 原生JS封装淡入淡出效果函数步骤详解

    这次给大家带来原生JS封装淡入淡出效果函数步骤详解,原生JS封装淡入淡出效果函数的注意事项有哪些,下面就是实战案例,一起来看一下。 说到js的渐变显示与消失,多数朋友会想到JQuery里面的fadeIn()、fadeOut()或fadeTo…

    2025年3月8日
    200
  • p5.js键盘交互函数总结

    这次给大家带来p5.js键盘交互函数总结,使用p5.js键盘交互函数的注意事项有哪些,下面就是实战案例,一起来看一下。 一、键盘交互相关关键词与函数 keyIsPressed: 关键词,按下按键时为true,反之为false keyCode…

    编程技术 2025年3月8日
    200
  • JS原型与原型链使用详解

    这次给大家带来JS原型与原型链使用详解,JS原型与原型链使用的注意事项有哪些,下面就是实战案例,一起来看一下。 我们创建的每个函数都有一个 prototype (原型)属性,这个属性是一个指针,指向一个原型对象,而这个原型对象中拥有的属性和…

    2025年3月8日
    200
  • jQuery里each方法使用案例

    这次给大家带来jQuery里each方法使用案例,jQuery里each方法使用的注意事项有哪些,下面就是实战案例,一起来看一下。 概述:   each() 方法规定为每个匹配元素规定运行的函数。   返回 false 可用于及早停止循环,…

    编程技术 2025年3月8日
    200
  • JS字符串的操作详解

    这次给大家带来JS字符串的操作详解,JS字符串操作的注意事项有哪些,下面就是实战案例,一起来看一下。 charAt()            获取字符串中特定索引处的字符; toupperCase()  将字符串的所有字符转换成大写字母; …

    编程技术 2025年3月8日
    200
  • js中DOM事件绑定使用小技巧

    这次给大家带来js中DOM事件绑定使用小技巧,js中DOM事件绑定使用的注意事项有哪些,下面就是实战案例,一起来看一下。 js事件绑定 JavaScript 有三种事件模型: 内联模型 脚本模型 DOM2 模型 1、内联模型 //基本废除不…

    编程技术 2025年3月8日
    200
  • js解析数据技巧总结

    这次给大家带来js解析数据技巧总结,js解析数据的注意事项有哪些,下面就是实战案例,一起来看一下。 自从有了前后端分离,一些后端小伙伴给出的数据结构也来越混乱了。以为分离减轻了他们的负担接口的质量会非常高但是人的惰性却体现的很“完美”。 由…

    编程技术 2025年3月8日
    200
  • vue.js路由失效无法使用

    这次给大家带来vue.js路由失效无法使用,解决vue.js路由失效无法使用的注意事项有哪些,下面就是实战案例,一起来看一下。 新学了vue.js中的路由 在之前写的vue的demo上加上了简单的路由例子(来自vue-router 2),但…

    编程技术 2025年3月8日
    200

发表回复

登录后才能评论